(function () {
  pc.ScriptHandler.prototype._loadScript = function (url, callback) {
    // 如果 URL 不是 data URL（如 __game-scripts.js），则跳过加载
    // 因为脚本已经在 HTML 中作为 <script> 标签执行过了
    if (!url.startsWith('data:')) {
      // 直接调用回调，不创建新的脚本元素
      callback(null, url, null);
      return;
    }

    var head = document.head;
    var element = document.createElement('script');
    this._cache[url] = element;

    // use async=false to force scripts to execute in order
    element.async = false;

    // Decode the url from base64 to text
    var index = url.indexOf(',');
    var base64 = url.slice(index + 1);
    
    // 移除查询参数（如 ?t=hash 用于缓存破坏）
    var queryIndex = base64.indexOf('?');
    if (queryIndex !== -1) {
      base64 = base64.substring(0, queryIndex);
    }
    
    // 防御性检查：清理 base64 字符串
    base64 = base64.trim().replace(/\s/g, '');
    
    // 如果 base64 为空，跳过加载
    if (!base64) {
      console.warn('警告: 脚本 base64 数据为空，URL:', url.substring(0, 100));
      callback('base64 数据为空');
      return;
    }
    
    var data;
    try {
      data = window.atob(base64);
    } catch (e) {
      console.error('脚本 atob 解码失败:', e.message, 'URL:', url.substring(0, 100));
      callback('atob 解码失败: ' + e.message);
      return;
    }

    element.innerText = data;
    head.appendChild(element);

    callback(null, url, element);
  };
})();
