所以我想做一个chrome扩展,如果在网站上找到一个单词,它就会打开一个页面。但是扩展名中文件的路径是什么?当我在谷歌上使用这段代码时,网站google.com/warnung.html将被打开。如何使chrome扩展名中的文件被打开?非常感谢
if (document.body.innerText.includes("Blood and Honey")){
window.open("warnung.html")
}
(wOxxOm的解决方案更简单,因此可能更好(
您可以使用chrome.windows.create((打开HTML文件。https://developer.chrome.com/docs/extensions/reference/windows/#method-创建
但是内容脚本不能访问chrome.windows API。https://developer.chrome.com/docs/extensions/mv3/content_scripts/#capabilities
这就是内容脚本需要向服务工作者发送消息的原因。https://developer.chrome.com/docs/extensions/mv3/messaging/
然后,服务工作者在一个新窗口中打开HTML文件。
manifest.json
{
"manifest_version": 3,
"name": "Open Extension Page",
"version": "1.0",
"action": {
"default_title": "Open Extension Page"
},
"background": {
"service_worker": "background.js"
},
"content_scripts": [
{
"matches": ["https://*/*"],
"js": ["/js/content_script.js"]
}
]
}
background.js
function runtimeOnMessage(message, sender, sendResponse) {
if (sender.id == chrome.runtime.id && message == "warning") {
chrome.windows.create({
focused: true,
url: chrome.runtime.getURL("/html/warning.html"),
});
}
}
chrome.runtime.onMessage.addListener(runtimeOnMessage);
/js/content_script.js
if (document.body.innerText.includes("chrome")) {
chrome.runtime.sendMessage("warning");
}
/html/warning.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
</head>
<body>
<h1>Warning</h1>
</body>
</html>