Q: Chrome extension: 如何打开标签后立即执行功能
Q: Chrome extension: How to perform the function as soon as open the tab
我目前正在开发一个扩展程序来阻止社区站点上的特定用户。
当我进入社区站点并单击弹出窗口中的按钮 window 时,特定用户的 post 消失了。
但我想在不按任何按钮的情况下一进入社区站点就让它消失。
popup.js
let blockUser = document.getElementById("userBlock");
blockUser.addEventListener("click", async () => {
let [tab] = await chrome.tabs.query({ active: true, currentWindow: true });
chrome.scripting.executeScript({
target: { tabId: tab.id },
function: setPageUserBlock,
});
});
function setPageUserBlock() {
chrome.storage.sync.get("blacklist", ({ blacklist }) => {
var lists = document.querySelectorAll("a.vrow");
var users = document.querySelectorAll("span.user-info");
var name;
var m = 6;
for (var i = 5; i < users.length; i++) {
name = users[i].innerText;
if (name == blacklist) {
lists[m].parentNode.removeChild(lists[m]);
}
m += 1;
}
});
}
background.js
let blacklist = 'FTB';
chrome.runtime.onInstalled.addListener(() => {
chrome.storage.sync.set({ blacklist });
});
为此您可以使用内容脚本:https://developer.chrome.com/docs/extensions/mv3/content_scripts/
这些允许您将代码放在一个单独的文件中,例如 content_script.js
,然后在您的清单中使用
"content_scripts": [
{
"matches": ["http://site-to-block-on.com/*"],
"js": ["content_script.js"]
}
],
它会在您打开该页面时立即加载文件!
通读文档页面,这是一个非常好的入门资源。内容脚本有一些怪癖,但这些都有据可查。
我目前正在开发一个扩展程序来阻止社区站点上的特定用户。
当我进入社区站点并单击弹出窗口中的按钮 window 时,特定用户的 post 消失了。
但我想在不按任何按钮的情况下一进入社区站点就让它消失。
popup.js
let blockUser = document.getElementById("userBlock");
blockUser.addEventListener("click", async () => {
let [tab] = await chrome.tabs.query({ active: true, currentWindow: true });
chrome.scripting.executeScript({
target: { tabId: tab.id },
function: setPageUserBlock,
});
});
function setPageUserBlock() {
chrome.storage.sync.get("blacklist", ({ blacklist }) => {
var lists = document.querySelectorAll("a.vrow");
var users = document.querySelectorAll("span.user-info");
var name;
var m = 6;
for (var i = 5; i < users.length; i++) {
name = users[i].innerText;
if (name == blacklist) {
lists[m].parentNode.removeChild(lists[m]);
}
m += 1;
}
});
}
background.js
let blacklist = 'FTB';
chrome.runtime.onInstalled.addListener(() => {
chrome.storage.sync.set({ blacklist });
});
为此您可以使用内容脚本:https://developer.chrome.com/docs/extensions/mv3/content_scripts/
这些允许您将代码放在一个单独的文件中,例如 content_script.js
,然后在您的清单中使用
"content_scripts": [
{
"matches": ["http://site-to-block-on.com/*"],
"js": ["content_script.js"]
}
],
它会在您打开该页面时立即加载文件! 通读文档页面,这是一个非常好的入门资源。内容脚本有一些怪癖,但这些都有据可查。