【发布时间】:2022-07-09 19:17:35
【问题描述】:
PopUp.html 不适用于特定 URL 我想让 popup.html 在特定的 URL 上打开,例如 google.com
Manifest.json v3
{
"name": "test",
"version": "1.0",
"description": "My Extension",
"manifest_version": 3,
"content_scripts": [
{
"matches": ["https://www.google.com/*"],
"js": ["popup.js"],
"css": ["style.css"]
}
],"action": {
"default_popup" : "Popup.html"
}
}
我尝试使用 MV2,但它无法在 if 条件()中工作
Manifest.json v2
{
"name": "testmv2",
"version": "1.0",
"description": "My Extension 2",
"manifest_version": 2,
"permissions": ["activeTab","tabs", "declarativeContent"],
"background":{
"scripts": ["background.js"],
"persistent": false
},
"content_scripts": [
{
"matches": ["https://www.google.com/*"],
"js": ["popup.js"],
"css": ["style.css"]
}
], "browser_action": { }
}
Backgound.js
document.addEventListener('DOMContentLoaded', function() {
'use strict';
chrome.tabs.getSelected(null, function(tab) {
myFunction(tab.url);
});
function myFunction(tablink) {
var mySiteUrl = 'https://www.google.com/';
if( tablink === mySiteUrl){
//it's the right website
chrome.browserAction.setPopup({popup: "Popup.html"});
}
}
})
【问题讨论】:
-
后台脚本在独立于选项卡中加载的任何网页的上下文中运行,因此在
document上收听DOMContentLoaded将无效。您可以改用chrome.tabsAPI 通过chrome.tabs.onUpdated收听标签更新。
标签: javascript google-chrome google-chrome-extension