我开发了我的第一个chrome扩展程序。
我尝试从我的default_popup
调用该页面。
我尝试使用chrome.runtime.onMessage.addListener
和chrome.runtime.sendMessage
,但这不起作用。
我读了这页https://developer.chrome.com/apps/messaging,但我无法弄清楚我的Listiner的正确位置。
我需要在打开“默认弹出窗口”时,在页面中调用一个事件并将某些内容返回到页面上的“default_popup”。
更多解释:
实际上我在这个content.js中有一个content.js我可以通过调用chrome.runtime.sendMessage来调用background.js,但是它调用了fast。
页面的DOM没有时间加载。我的content.js在网页中注入一些.js文件以与页面进行交互。
有没有办法可以从注入的页面调用crhome.extension.sendMessage?
有什么建议吗?
答案 0 :(得分:0)
好的,我找到了。
我们可以在background.js中注册一个事件
chrome.runtime.onMessageExternal.addListener(
function (request, sender, sendResponse) {
debugger;
if (sender.url == blacklistedWebsite)
return; // don't allow this web page access
if (request.openUrlInEditor)
openUrl(request.openUrlInEditor);
});
你需要在清单中加入正确的规则
"externally_connectable": {
"matches": ["*://*.example.com/*"]
}
在您注入的页面之后:
chrome.runtime.sendMessage(extensionID, { openUrlInEditor: "test" },
function (response) {
debugger;
if (!response.success)
handleError("est");
});