0

代码:

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);
}

这就是我控制站点的方式尚未加载 jquery,因为此代码旨在插入到我不知道任何内容的页面上,如果未加载,它会加载它。这在我的测试站点上运行良好,但如果我在另一个更复杂的站点上尝试它,它会失败并出现Uncaught TypeError: Property '$' of object [object Window] is not a function

我不知道发生了什么事。

4

1 回答 1

1

当之前没有定义 jQuery 时,您的代码会加载 jQuery,但您的网站已经有 jQuery。

(我认为它包含在您的 wordpress 主题中)

所以你可以使用这个jQuery对象。如果不能使用$,那是因为 jQuery 处于“无冲突模式”下。

http://api.jquery.com/jQuery.noConflict/

只需使用jQuery代替$或重新$定义window.$ = jQuery.noConflict();

于 2013-01-12T13:18:34.843 回答