gpt4 book ai didi

javascript - 为 head.js 创建函数在不同的浏览器中会出现非常严重的错误

转载 作者:行者123 更新时间:2023-11-30 06:06:10 25 4
gpt4 key购买 nike

我正在为 head.js ( http://headjs.com ) 构建一个函数,它将以与 jQuewy ( http://jquewy.com ) 库相同的方式将脚本加载到其中。但是,我在使用不同的浏览器时遇到了一些非常疯狂的错误。期望的结果是获得加载 jQuery 版本的警报:

 (function() {
head.js(
jquewy_get("","jquery","ui")
);

head.ready(function(){
alert($.fn.jquery);
});

//Takes arguments and sets them so that it
//loads the urls in headjs
function jquewy_get(){
var ret = new Array();
var arg = arguments[0];

var rand = Math.floor(Math.random()*999*999);
for (var i = 1; i < arguments.length; i++){
var arg = arguments[i];
ret[i] = 'hxxp://jquewy.com/dev/headjs/?name='+arg+'&rand='+rand;
}
return ret;
}

})();

在 Firefox 中,我得到:

$ is undefined on line 39

但更奇怪的是,脚本标签已加载(<script type="text/javascript" src="http://jquewy.com/dev/headjs/?name=ui&rand=717786"></script>),但 Firebug 说它有:

Failed to load source for: hxxp://jquewy.com/dev/headjs/?name=ui&rand=717786

这显然解决得很好。在 Chromium 中,它甚至不加载脚本标签,而且我还没有费心去查看任何其他浏览器,因为如果它在这两个浏览器中不起作用,那么它很可能在其他任何地方都不起作用。

您可以在这里查看源代码:http://jquewy.com/dev/static/headjs/test/

编辑:对于那些想知道这一点的人来说,关键是你不需要记住 url - 我正在移植我构建的另一个服务,叫做 jQuewy,它允许通过加载库快速制作原型(prototype)根据他们的名字。我的服务会自动获取最新的资源并将它们自动嵌入到页面中。 head.js 是另一个做类似事情的脚本(但更受欢迎),所以我想让我的服务与它兼容,以便最终用户可以选择他们加载脚本的方式。

编辑 #2:我的链接中的硬编码似乎会产生相同的错误。我的服务器使用重定向指向正确的脚本。这种行为是否正常,是否有独立于浏览器的解决方法?

最佳答案

由于未设置 jQuery 的 $ 别名而发生错误。脚本正常加载。可以打电话查询

alert(jQuery('#nav').html());

例如。有用。因此你需要自己设置别名。例如:

window.$ = jQuery;
alert($('#nav').html());

如您所见,没有错误。

顺便说一句,因为 $ alias 可以设置任何库,你必须提供一个解决冲突的机制。正如在 jQuery.noConflict() 中所做的那样。

关于javascript - 为 head.js 创建函数在不同的浏览器中会出现非常严重的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4483626/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com