chrome.runtime.sendmessage在Chrome扩展
2015-12-31
32321
我正在尝试创建一个新的扩展名。我能够前一段时间使用chrome.runtime.sendmessage函数,但是现在,我已经尝试了所有内容,但它仍然无法将消息发送到背景脚本。该控制台从
content-script.js
中填充了日志消息,但不会从
background.js
content-content-content-content-content-content-content-script中填充。 。 。
2个回答
您需要更改代码,以便在 background.js 中必须更改行为:
console.log("Atleast reached background.js")
chrome.runtime.onMessage.addListener (
function (request, sender, sendResponse) {
console.log("Reached Background.js");
if (request.Message == "getTextFile") {
console.log("Entered IF Block");
$.get("http://localhost:63342/Projects/StackOverflow/ChromeEXT/helloWorld1", function(response) {
console.log(response);
// to send back your response to the current tab
chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
chrome.tabs.sendMessage(tabs[0].id, {fileData: response}, function(response) {
;
});
});
})
}
else {
console.log("Did not receive the response!!!")
}
}
);
而对于 contentscript,您需要执行:
console.log("Hello World!s");
$(document).ready(function() {
console.log("DOM READY!");
$(document.documentElement).keydown(function (e) {
console.log("Key Has Been Pressed!");
chrome.runtime.sendMessage({Message: "getTextFile"}, function (response) {
;
})
})
});
// accept messages from background
chrome.runtime.onMessage.addListener (function (request, sender, sendResponse) {
alert("Contents Of Text File = " + request.fileData);
});
sendResponse 可以用作即时反馈,而不是计算的结果。
gaetanoM
2015-12-31
根据
https://developer.chrome.com/extensions/messaging#simple
末尾的文本,如果您从 background.js 中的
onMessage
处理程序返回 true,那么您可以异步调用 sendResponse。
Moose Morals
2017-11-14