Chrome内容脚本:如何等待jQuery

时间:2011-08-04 16:51:18

标签: google-chrome google-chrome-extension chromium

我正在撰写一个小型Chrome扩展程序,其中包含content_script

它会在单个域上运行,我正在尝试改进网站。

我想在我的内容脚本中使用jQuery,但该网站也使用jQuery,因此我不能简单地将jQuery添加到我的扩展程序的content_script数组中。

我的content_script

"run_at": "document_end"

jQuery尚未加载。它也没有加载到document_idle

所以我必须等待它。

我该怎么做?

我试过这样做:

(function() {
    var i = setInterval(function () {
        console.log(typeof jQuery + " " + i);
        if (typeof jQuery != "undefined") {
            console.log("jQuery loaded");
            clearInterval(i);
        } else {
            console.log("jQuery not loaded");
        }
    }, 200);
})();

但由于某些原因typeof jQuery总是在该循环中未定义。

如果我手动clearInterval,请检查typeof jQuery我正确获得"function" (铬检查员控制台)

有什么想法吗?

编辑: content_script很特别:

  

内容脚本是在Web上下文中运行的JavaScript文件   页面。通过使用标准文档对象模型(DOM),他们可以   阅读浏览器访问或更改的网页的详细信息   它们。

1 个答案:

答案 0 :(得分:6)

  

我不能简单地将jQuery添加到我的扩展程序的content_script数组中。

你可以而且应该。扩展变量空间是沙箱,因此内容脚本无法从父页面访问变量,反之亦然。