我目前正在开发一个Chrome扩展程序,如果它在页面的HTML中找到特定的单词,它将关闭我当前打开的标签页。
我的content.js脚本将在打开的标签页的HTML中找到禁用的单词(如果有的话),然后运行以下代码:chrome.runtime.sendMessage({request: "closeTab" })
我的background.js脚本应该会收到以下消息:chrome.runtime.onMessage.addListener(function closeTab(request, sender, sendResponse) {if (request == "closeTab") {//code});
我的content.js脚本中的所有代码都运行正常,并正在发送该消息。尽管如此,background.js不会做任何事情。如果有人能告诉我原因,我将非常感激。
- 编辑:我不再有之前显示的错误消息。但background.js文件中的代码仍然没有运行。
- 编辑:为了帮助我采取了控制台的屏幕截图,它看起来像什么. Screenshot of Console
- 以防万一我留下密码 *
内容.js
// content.js
const forbiddenText = "cheese";
//Program that looks for forbidden text
function checkForForbiddenText() {
console.log("Checking for Forbidden Text.....");
const bodyText = document.body.innerText;
if (bodyText.includes(forbiddenText)) {
console.log("Forbidden text found! Closing the tab...");
chrome.runtime.sendMessage("closeTab")};
console.log(chrome.runtime.sendMessage("closeTab"));
}
// Run the checkForForbiddenText function when the page is fully loaded
window.addEventListener("load", checkForForbiddenText);
字符串
// background.js
chrome.runtime.onMessage.addListener(function closeTab(request, sender, sendResponse) {
if (request.from === "closeTab") {
// Close the current tab
console.log("Background Running.....");
chrome.tabs.remove(sender.tab.id)
console.log("Tab closed");
}
});
chrome.tabs.onUpdated.addListener(function (tabId, changeInfo, tab) {
// Add any other logic you need for tab updates
console.log("Tab updated:", changeInfo);
});
型
manifest.json
{
"manifest_version": 3,
"name": "Test Blocker",
"version": "1",
"permissions": [
"tabs",
"activeTab"
],
"background": {
"service_worker": "background.js"
},
"content_scripts": [
{
"matches": ["<all_urls>"],
"js": ["content.js"]
}
型
] }的情况
1条答案
按热度按时间kgqe7b3p1#
字符串
同时检查content.js中的右括号.