【问题标题】:jquery yepnope throws an error when loading the same file twicejquery yepnope 两次加载同一个文件时抛出错误
【发布时间】:2012-02-14 23:55:26
【问题描述】:
                $("#register").click(function()
                {
                     yepnope({
                          load: ['js/join.js', 'css/join.css',  'css/join_form.css'],
                     });

                     $('#midcol').load('join.htm');             
                });

单击注册链接时,yepnope 会按预期加载那些列出的文件。当注册链接被点击第二,第三,第四等...时间yepnope抛出以下 错误:
无法转换 JavaScript 参数 arg 0 [nsIDOMHTMLHeadElement.insertBefore] js/yepnope/yepnope.js 第 248 行

我的印象是 yepnope 只会加载不存在的文件?我是否需要对要使用 yepnope 加载的每个文件进行检查?如果是这样的话,这似乎有点令人生畏。

在网上搜索 HOURS 时,我找不到问题的解决方案。然而,我确实遇到了 CURL.js。它的占地面积相当小。我能够毫无问题地加载我的依赖项。下面是加载依赖项的代码示例。

var cnf = {
     baseUrl: 'scripts',
     pluginPath: 'curl/plugin',
     paths: {
          curl: 'curl/src/curl',
     },
};

curl(cnf, ['js!join.js!order', 'domReady!'], function () {
     $("#register").click(function(){
          $("#midcol").load("join.htm");    
     });
});

【问题讨论】:

    标签: jquery yepnope


    【解决方案1】:

    根据我的经验,是的,如果脚本有可能被加载两次,您必须进行检查。对我来说,这似乎是一个相当罕见的案例。

    在我目前正在开发的网站上,当用户在通过 AJAX 加载的几个部分之间来回切换并且每个部分都有自己的脚本集时,我确实遇到了这种情况。用户可以先加载任一部分。

    我将我的脚本设置为模块,所以很容易做到这一点:

    // Section A loaded
    yepnope([{
        test: window.One,
        nope: 'js/One.js'
    },{
        test: window.Two,
        nope: 'js/Two.js'
    }]);
    
    // Section B loaded
    yepnope([{
        test: window.One,
        nope: 'js/One.js'
    },{
        test: window.Three,
        nope: 'js/Three.js'
    }]);
    

    你说得对,自动加载处理会更方便。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-03
      • 1970-01-01
      • 1970-01-01
      • 2020-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多