【发布时间】:2014-03-22 05:37:13
【问题描述】:
我正在编写一个 google chrome 扩展程序并尝试将信息从注入网页的一段代码发送到我的内容脚本。
根据http://developer.chrome.com/extensions/messaging#external-webpage,我应该使用类似的东西:
// The ID of the extension we want to talk to.
var editorExtensionId = "abcdefghijklmnoabcdefhijklmnoabc";
// Make a simple request:
chrome.runtime.sendMessage(editorExtensionId, {openUrlInEditor: url},
function(response) {
if (!response.success)
handleError(url);
});
问题是,当我这样做时:
var script_code = "var msg = {message : 'plop'};\n";
script_code += "chrome.runtime.sendMessage('" + chrome.i18n.getMessage("@@extension_id") + "', msg, function(response) {\n";
script_code += " console.log('response received');\n";
script_code += "});\n";
然后将其注入网页,当它执行时,我得到:
未捕获的类型错误:无法调用未定义的方法 'sendMessage'
谁能帮我解决这个问题?
谢谢
【问题讨论】:
-
内容脚本与网页中的 javascript 分开执行,当您将脚本注入页面时,它无法直接与您的内容脚本对话。通常有一些变通方法,因此请发布更多关于您要完成的工作的详细信息。
-
是 @1337holiday ,我知道,这就是为什么我尝试使用此消息传递 API 将我的数据从网页(通过此注入脚本)发送到事件/背景页面,然后从那里重新发送到我的内容脚本,就像文档中描述的那样。如果有更简单的方法也是安全的,为什么不呢:-)
标签: javascript jquery google-chrome google-chrome-extension