Firefox Addon - 从网页发送消息到后台脚本
Firefox Addon - Send message from webpage to background script
我正在尝试将我的 Chrome 扩展程序转换为 FireFox 插件。我现在遇到的唯一问题是我的网页与后台脚本之间的通信。
在Chrome中,我是这样做的:
background.js
chrome.runtime.onMessageExternal.addListener(function(request)
{
if (request.hello) { console.log('hello received'); }
});
网页
chrome.runtime.sendMessage(ChromeExtId, {hello: 1});
我看到 FireFox 还不支持 onMessageExternal,所以我现在完全不知道如何处理这种情况。
如有任何帮助,我们将不胜感激。
您可以通过内容脚本从网页与 background.js 通信。试试这个:
background.js
chrome.runtime.onMessage.addListener(
function(request, sender, sendResponse) {
if (request.hello) {
console.log('hello received');
}
});
内容脚本
var port = chrome.runtime.connect();
window.addEventListener("message", function(event) {
if (event.source != window)
return;
if (event.data.type && (event.data.type == "FROM_PAGE")) {
console.log("Content script received: " + event.data.text);
chrome.runtime.sendMessage({
hello: 1
});
}
}, false);
网页
window.postMessage({ type: "FROM_PAGE", text: "Hello from the webpage!" }, "*");
我正在尝试将我的 Chrome 扩展程序转换为 FireFox 插件。我现在遇到的唯一问题是我的网页与后台脚本之间的通信。
在Chrome中,我是这样做的:
background.js
chrome.runtime.onMessageExternal.addListener(function(request)
{
if (request.hello) { console.log('hello received'); }
});
网页
chrome.runtime.sendMessage(ChromeExtId, {hello: 1});
我看到 FireFox 还不支持 onMessageExternal,所以我现在完全不知道如何处理这种情况。
如有任何帮助,我们将不胜感激。
您可以通过内容脚本从网页与 background.js 通信。试试这个:
background.js
chrome.runtime.onMessage.addListener(
function(request, sender, sendResponse) {
if (request.hello) {
console.log('hello received');
}
});
内容脚本
var port = chrome.runtime.connect();
window.addEventListener("message", function(event) {
if (event.source != window)
return;
if (event.data.type && (event.data.type == "FROM_PAGE")) {
console.log("Content script received: " + event.data.text);
chrome.runtime.sendMessage({
hello: 1
});
}
}, false);
网页
window.postMessage({ type: "FROM_PAGE", text: "Hello from the webpage!" }, "*");