@szmg-fe/tarco
Version:
function library in Taro
38 lines (33 loc) • 1.09 kB
text/typescript
import Taro from '@tarojs/taro';
import { useFinishRender } from "@szmg-fe/hooks/useEffect";
interface Handle {
(el): void
}
/**
* 格式化小程序原生dangerous html
* @param config
*/
export default function useTransformElement(config?: {
viewClass?: string
imageClass?: string
handle?: Handle
}) {
useFinishRender(() => {
const { viewClass = '', imageClass = '', handle = Function.prototype as any } = config || {};
// @ts-ignore
Taro.options.html.transformElement = el => {
el.removeAttribute('style');
if (el.nodeName === 'image') {
el.setAttribute('mode', 'widthFix');
el.setAttribute('lazyLoad', true);
el.setAttribute('showMenuByLongpress', true);
imageClass && el.setAttribute('class', imageClass);
} else if (el.nodeName === 'view') {
el.setAttribute('class', el.childNodes.length ? viewClass : 'empty-text');
} else {
}
handle(el);
return el
}
})
}