3

我正在编写一个小型 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_scripts 是特殊的:

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

4

1 回答 1

6

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

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

于 2011-08-04T17:01:07.517 回答