我为Chrome创建了一个简单的插件,它为我提供了一些功能,例如,在按某些键时创建新cookie的功能。
当页面加载时,我可以看到文件已加载(因为如果我在这个插件中打印了一些东西,Chrome会告诉我JS在哪里做了。)。
我的问题是:如何在控制台中使用此js的功能?
我的插件示例:
的manifest.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()函数。
答案 0 :(得分:1)
好像你不能。
内容脚本在称为孤立世界的特殊环境中执行。他们可以访问注入页面的DOM,但不能访问页面创建的任何JavaScript变量或函数。它将每个内容脚本视为在其运行的页面上没有执行其他JavaScript。反过来也是如此:页面上运行的JavaScript无法调用任何函数或访问内容脚本定义的任何变量。
http://developer.chrome.com/extensions/content_scripts.html#execution-environment
答案 1 :(得分:-1)
我发现了一种方法。
使用这篇文章的答案:Include jQuery in the JavaScript Console
我已经创建了一个带有jQuery和我的脚本的书签,现在我能够进行这样的注入:D