(function() { // 定义解码函数并暴露为全局函数 window.decodeObfuscatedContent = function(rootElement) { const root = rootElement || document.body; const elements = root.querySelectorAll('z-span[data-preload="true"], z-strong[data-preload="true"]'); if (elements.length === 0) return; // 使用requestIdleCallback或setTimeout在空闲时运行,避免阻塞渲染 const runWhenIdle = window.requestIdleCallback || function(cb) { setTimeout(cb, 1); }; runWhenIdle(() => { elements.forEach(el => { // 避免重复解码 if (el.hasAttribute('data-content')) return; // 找到编码数据 const dataAttr = el.getAttribute('data-data'); if (dataAttr) { try { // 解码并设置 const decodedWord = decodeURIComponent(atob(dataAttr)); el.setAttribute('data-content', decodedWord); el.removeAttribute('data-preload'); } catch (e) { // 解码失败时跳过 } } }); }); }; // 页面加载完成后立即执行一次全局解码 if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', function() { window.decodeObfuscatedContent(); }); } else { window.decodeObfuscatedContent(); } // 使用IntersectionObserver优化解码性能 if ('IntersectionObserver' in window) { const decodeObserver = new IntersectionObserver( (entries, observer) => { entries.forEach(entry => { if (entry.isIntersecting) { // 容器进入视口时解码其内容 window.decodeObfuscatedContent(entry.target); observer.unobserve(entry.target); } }); }, { rootMargin: '200px 0px' } // 提前200像素开始解码 ); // 监听所有混淆容器 function observeContainers() { document.querySelectorAll('z-wrap').forEach(container => { decodeObserver.observe(container); }); } // 初始观察 if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', observeContainers); } else { observeContainers(); } // 定期检查新容器 setInterval(observeContainers, 2000); } else { // 降级方案:定期全局检查 setInterval(() => window.decodeObfuscatedContent(), 1000); } })();