1

我为 Chrome 创建了一个简单的插件,它为我提供了一些功能,例如,在按下某些键时创建新 cookie 的功能。

当页面加载时,我可以看到文件已加载(因为如果我在此插件中打印某些内容,Chrome 会向我显示执行该操作的 JS 的位置。)。

我的问题是:如何在控制台中使用这个js的功能?

我的插件示例:

清单.json

{
    "name":"Function helpers",
    "description":"",
    "version":"1",
    "manifest_version":2,
    "content_scripts": [{
        "matches": ["http://localhost:9999/*"],
        "js": ["jquery.js", "myscript.js"]
    }
  ]
}

myscript.js

   console.log("It works!");
    var helper = {
      createCookie =  function (){
           console.log("Cookie created!");
      }

    }

Chrome 的控制台向我显示:

It works!                       - myscript.js:1

我希望能够在 Chrome 的控制台中调用 myscript.js 文件的函数helper.createCookie()

4

2 回答 2

1

好像你不能。

内容脚本在称为孤立世界的特殊环境中执行。他们可以访问被注入页面的 DOM,但不能访问页面创建的任何 JavaScript 变量或函数。它查看每个内容脚本,就好像它正在运行的页面上没有执行其他 JavaScript。反过来也是如此:在页面上运行的 JavaScript 不能调用任何函数或访问由内容脚本定义的任何变量。

http://developer.chrome.com/extensions/content_scripts.html#execution-environment

于 2015-07-03T12:46:03.483 回答
-1

我发现了一种方法。

使用这篇文章的答案:在 JavaScript 控制台中包含 jQuery

我创建了一个书签,带有 jQ​​uery 和我的脚本,现在我可以进行这种注入了:D

于 2015-08-06T14:52:41.440 回答