UNPKG

db-lgtv-focus-engine

Version:

the Best TV focus engine

35 lines (29 loc) 990 B
export function bindMutationObserver(focus_engine) { // 防止重复监听 if (focus_engine._observer) { focus_engine._observer.disconnect(); } // 选择需要观察变动的节点 const targetNode = document.getElementsByTagName('html')[0] // 观察器的配置(需要观察什么变动) const config = { childList: true, subtree: true }; // 当观察到变动时执行的回调函数 const callback = function (mutationsList) { if (focus_engine.dont_render) { focus_engine.dont_render = false return } focus_engine.render() }; // 创建一个观察器实例并传入回调函数 const observer = new MutationObserver(callback); // 以上述配置开始观察目标节点 observer.observe(targetNode, config); focus_engine._observer = observer } export function unbindMutationObserver(focus_engine) { focus_engine._observer.disconnect(); }