Javascript 动态加载jQuery仅在某些站点中失败 代码:
这就是为什么我控制的网站还没有加载jquery,因为这段代码要插入到我不知道的页面上,如果没有加载,它就会加载它。这在我的上运行得很好,但如果我在另一个上尝试,它将失败,并出现未捕获的TypeError:object[object Window]的属性“$”不是函数Javascript 动态加载jQuery仅在某些站点中失败 代码:,javascript,jquery,Javascript,Jquery,这就是为什么我控制的网站还没有加载jquery,因为这段代码要插入到我不知道的页面上,如果没有加载,它就会加载它。这在我的上运行得很好,但如果我在另一个上尝试,它将失败,并出现未捕获的TypeError:object[object Window]的属性“$”不是函数 我不知道发生了什么。以前没有定义jQuery时,您的代码会加载jQuery,但您的站点已经有了jQuery (我认为它包含在你的wordpress主题中) 因此,您可以使用jQuery对象。如果不能使用$,那是因为jQuery处于“
我不知道发生了什么。以前没有定义jQuery时,您的代码会加载jQuery,但您的站点已经有了jQuery (我认为它包含在你的wordpress主题中) 因此,您可以使用
jQuery
对象。如果不能使用$
,那是因为jQuery处于“无冲突模式”
只需使用
jQuery
而不是$
或通过窗口重新定义$
。$=jQuery.noConflict()
也许页面使用了jQuery.noConflict()
?不知道,我知道wordpress主题加载了jQuery,但我的脚本必须能够处理这个问题。我不建议覆盖$
我改为jQuery而不是$,没有错误,但是div没有在复杂的站点上得到更新…@JanDvorak yea也许它会造成一些真正的“冲突”。但这是解决方案之一哈哈
p_initJQuery();
function p_initJQuery() {
if (typeof jQuery === "undefined") {
var script_tag = document.createElement('script');
script_tag.setAttribute("type", "text/javascript");
script_tag.setAttribute("src", "http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js")
script_tag.onload = punctis_load_box;
script_tag.onreadystatechange = function() {
if (this.readyState == 'complete' || this.readyState == 'loaded') punctis_load_box();
}
document.getElementsByTagName("head")[0].appendChild(script_tag);
} else {
punctis_load_box();
}
}
function punctis_load_box() {
$(".punctis-social-box").html(typeof jQuery);
}