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"]
   }
 ],

它会在您打开该页面时立即加载文件! 通读文档页面,这是一个非常好的入门资源。内容脚本有一些怪癖,但这些都有据可查。