HEX
Server: nginx
System: Linux 167746b7b9c4 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64
User: www-data (1000)
PHP: 8.4.3
Disabled: NONE
Upload Files
File: /www/sites/cbgdh_com/index/wp-content/themes/onenav/assets/js/require.js
/*
 * @Author: iowen
 * @Author URI: https://www.iowen.cn/
 * @Date: 2023-02-01 00:01:43
 * @LastEditors: iowen
 * @LastEditTime: 2025-05-10 17:15:48
 * @FilePath: /onenav/assets/js/require.js
 * @Description: 模块加载器
 */

(function (global) {
  var loadedScripts = {}; 
  var config = {   
    baseUrl: '',
    urlArgs: '',
    paths: {}
  };

  // 初始化 require 模块
  var require = {
    config: function (options) {
      config = Object.assign(config, options);
    },

    // 检查是否是绝对 URL
    isAbsoluteUrl: function (url) {
      return /^(https?:)?\/\//.test(url);
    },

    loadScript: function (url, callback) {
      if (loadedScripts[url]) {
        callback(true);
        return;
      }

      var script = document.createElement('script');
      script.src = url;
      script.onload = function () {
        loadedScripts[url] = true;
        callback(true);
      };
      script.onerror = function () {
        callback(false);
        console.error('Error loading script:', url);
      };
      document.head.appendChild(script);
    },

    // 加载单个或多个 URL,数组情况
    loadScriptsArray: function (urls, callback, errorCallback) {
      var index = 0;

      function tryLoadNext() {
        if (index >= urls.length) {
          callback();
          return;
        }

        require.loadScript(urls[index], function (success) {
          if (!success) {
            errorCallback && errorCallback(urls[index]);
          } else {
            index++;
            tryLoadNext();
          }
        });
      }

      tryLoadNext();
    },

    load: function (deps, callback) {
      if (typeof deps === 'string') {
        deps = [deps];
      }

      var loadedCount = 0;
      var totalDeps = deps.length;

      function onLoad() {
        loadedCount++;
        if (loadedCount === totalDeps && typeof callback === 'function') {
          callback();
        }
      }

      deps.forEach(function (dep) {
        var path = config.paths[dep] ? config.paths[dep] : dep;
        var urls;

        if (Array.isArray(path)) {
          urls = path;
        } else {
          urls = [path];
        }

        urls = urls.map(function (url) {
          if (!require.isAbsoluteUrl(url)) {
            url = [config.baseUrl + '/' + url + '.js'];  // 拼接 baseUrl
          }
          if (config.urlArgs) {
            return url + (url.indexOf('?') === -1 ? '?' : '&') + config.urlArgs;
          }
          return url;
        });

        require.loadScriptsArray(urls, onLoad, function (failedUrl) {
          console.error('Failed to load dependency:', dep, 'URL:', failedUrl); // 输出详细错误信息
        });
      });
    }
  };

  global.ioRequire = function (deps, callback) {
    require.load(deps, callback);
  };

  global.ioRequire.config = require.config;

})(window);

// 示例配置
ioRequire.config({
  baseUrl: IO.uri + '/assets/js',
  urlArgs: 'ver=' + IO.version,
  paths: {
    'main': 'main' + IO.minAssets,
    'lazyload': 'lazyload.min',
    'captcha': 'captcha',
    'comments': [IO.homeUrl + '/wp-includes/js/comment-reply.min.js', 'comments-ajax'],
    'sticky-sidebar': 'theia-sticky-sidebar',
    'slidercaptcha': 'longbow.slidercaptcha' + IO.minAssets,
    'color-thief': 'color-thief.umd',
    'fancybox': 'jquery.fancybox.min',
    'echarts': ['echarts.min', 'sites-chart'],
    'pay': IO.uri + '/iopay/assets/js/pay.js',
    'new-post': ['new-post'],
    'weather': '//widget.seniverse.com/widget/chameleon.js',
    'weather-v2': '//cdn.sencdn.com/widget2/static/js/bundle.js?t=' + parseInt((new Date().getTime() / 100000000).toString(), 10),
    'swiper': 'swiper-bundle.min',
  }
});

document.querySelectorAll(".panel-body.single img").forEach(function(img) {
  // 如果图片不是 wp-smiley 并且没有被包裹在 <a> 中
  if (!img.classList.contains('unfancybox') && 
      !img.classList.contains('wp-smiley') && 
      !img.parentElement.matches('a')) {
    
    var imgSrc = IO.lazyload ? img.dataset.src : img.src;
    var caption = img.alt || '';
    imgSrc = imgSrc || img.src;

    var link = document.createElement('a');
    link.className = 'js';
    link.href = imgSrc;
    link.setAttribute('data-fancybox', 'images');
    link.setAttribute('data-caption', caption);
    
    img.parentNode.insertBefore(link, img);
    link.appendChild(img);
  }
  
  if (IO.lazyload && img.dataset.src && !img.classList.contains('lazy')) {
    img.classList.add('lazy');
  }
});


//ioRequire(['lazyload','main']);
//ioRequire('main');
ioRequire('lazyload', function () {
  ioRequire('main');
});