特定页面上的 firefox 插件 tabs.executeScript 错误 没有 window 匹配 {"matchesHost":["<all_urls>"]}
firefox addon tabs.executeScript error on specific pages No window matching {"matchesHost":["<all_urls>"]}
我有一个从 chrome 扩展移植过来的 firefox webextension。 executeScript 调用在此站点上失败。
https://addons.mozilla.org/en-US/firefox/
我测试了这个网站上的多个页面,所有页面都出现了同样的错误
重现此代码的最低限度代码是
popup.js
document.addEventListener("DOMContentLoaded", function () {
chrome.tabs.query({"active": true}, function(tabs) {
chrome.tabs.executeScript(tabs[0].id, {"code": "console.log('Script executed in ' + document.location.href);"}, function(r) {
if(chrome.runtime.lastError) {
console.log(chrome.runtime.lastError);
document.body.innerHTML = 'Execute script Fail. check console';
} else {
document.body.innerHTML = 'Execute script Success';
}
});
});
});
manifest.json
{
"manifest_version": 2,
"name": "execscript_test",
"short_name": "execscript_test",
"version": "0.0.1",
"description": "desc",
"icons": {
"19": "images/icon19.png",
"38": "images/icon38.png",
"128": "images/icon.png"
},
"applications": {
"gecko": {
"id": "execscript_test@me.com",
"strict_min_version": "48.0"
}
},
"background": {
"scripts": ["background.js"]
},
"permissions": [
"tabs",
"<all_urls>"
],
"browser_action": {
"browser_style": false,
"default_icon": "images/icon.png",
"default_title": "execscript_test",
"default_popup": "popup.html"
}
}
background.js - 文件存在但为空
popup.html
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<script src="popup.js"></script>
</head>
<body>
</body>
</html>
在 https://addons.mozilla.org/en-US/firefox/addon/engrip-tracker/?src=search
页面上,我点击了浏览器按钮,但在浏览器控制台中出现了这个错误
Error: No window matching {"matchesHost":["<all_urls>"]}
Stack trace:
Async*@moz-extension://062a83b0-81f1-42f0-84a8-89ecdc2c08e0/popup.js:8:4
Async*@moz-extension://062a83b0-81f1-42f0-84a8-89ecdc2c08e0/popup.js:2:2
EventListener.handleEvent*@moz-extension://062a83b0-81f1-42f0-84a8-89ecdc2c08e0/popup.js:1:1
我认为这可能是一些 url 方案问题,但即使在 https://addons.mozilla.org/en-US/firefox/
上也会发生这种情况
相同的代码在 chrome.
上运行没有错误
我正在使用 FF v50。我也在 FF nightly (v53.0a1) 上对此进行了测试,但错误仍然存在。
这是该站点特有的内容吗?或者我在这里遗漏了什么?
我有一个从 chrome 扩展移植过来的 firefox webextension。 executeScript 调用在此站点上失败。
https://addons.mozilla.org/en-US/firefox/
我测试了这个网站上的多个页面,所有页面都出现了同样的错误
重现此代码的最低限度代码是
popup.js
document.addEventListener("DOMContentLoaded", function () {
chrome.tabs.query({"active": true}, function(tabs) {
chrome.tabs.executeScript(tabs[0].id, {"code": "console.log('Script executed in ' + document.location.href);"}, function(r) {
if(chrome.runtime.lastError) {
console.log(chrome.runtime.lastError);
document.body.innerHTML = 'Execute script Fail. check console';
} else {
document.body.innerHTML = 'Execute script Success';
}
});
});
});
manifest.json
{
"manifest_version": 2,
"name": "execscript_test",
"short_name": "execscript_test",
"version": "0.0.1",
"description": "desc",
"icons": {
"19": "images/icon19.png",
"38": "images/icon38.png",
"128": "images/icon.png"
},
"applications": {
"gecko": {
"id": "execscript_test@me.com",
"strict_min_version": "48.0"
}
},
"background": {
"scripts": ["background.js"]
},
"permissions": [
"tabs",
"<all_urls>"
],
"browser_action": {
"browser_style": false,
"default_icon": "images/icon.png",
"default_title": "execscript_test",
"default_popup": "popup.html"
}
}
background.js - 文件存在但为空
popup.html
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<script src="popup.js"></script>
</head>
<body>
</body>
</html>
在 https://addons.mozilla.org/en-US/firefox/addon/engrip-tracker/?src=search
页面上,我点击了浏览器按钮,但在浏览器控制台中出现了这个错误
Error: No window matching {"matchesHost":["<all_urls>"]}
Stack trace:
Async*@moz-extension://062a83b0-81f1-42f0-84a8-89ecdc2c08e0/popup.js:8:4
Async*@moz-extension://062a83b0-81f1-42f0-84a8-89ecdc2c08e0/popup.js:2:2
EventListener.handleEvent*@moz-extension://062a83b0-81f1-42f0-84a8-89ecdc2c08e0/popup.js:1:1
我认为这可能是一些 url 方案问题,但即使在 https://addons.mozilla.org/en-US/firefox/
上也会发生这种情况
相同的代码在 chrome.
我正在使用 FF v50。我也在 FF nightly (v53.0a1) 上对此进行了测试,但错误仍然存在。
这是该站点特有的内容吗?或者我在这里遗漏了什么?