Chrome content_script:如何等待jQuery

Pro*_*ody 3 google-chrome chromium google-chrome-extension

我正在写一个小的Chrome扩展程序,它有一个content_script.

它将在一个域上运行,我正在尝试改进一个站点.

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

我的content_script意志

"run_at": "document_end"
Run Code Online (Sandbox Code Playgroud)

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);
})();
Run Code Online (Sandbox Code Playgroud)

但由于某些原因,typeof jQuery在该循环中始终未定义.

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

有任何想法吗?

编辑: content_scripts很特别:

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

ser*_*erg 6

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

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