Chrome 扩展:选项卡中的点击事件?

Chrome extension: Click event in tab?

他,

我搜索了 Chrome API 一整天,但找不到答案。快速:是否可以向选项卡添加图标并附加点击监听器?还是一般的选项卡上的点击侦听器?

谢谢!

可以 chrome.tabs.executeScript api. Or with content_scripts:

injectedScript.js

document.getElementById('btn1').addEventListener('click',function () {
    alert('button click!');
});

manifest.json

"content_scripts": [
    {
      "matches": ["http://www.example.com/webPage.html"],
      "js": ["injectedScript.js"]
    }
],

webPage.html

<button id="btn1">clickMe!</button>

有关详细信息,请参阅 Programmatic injection

编辑:

您不能将事件添加到选项卡本身,我认为最好的方法是上下文菜单。这个例子是丑陋的代码,但这使工作...... (我对我的英语感到抱歉)。

manifest.json

 "background":{"scripts":["background.js"]},
  "permissions": ["contextMenus", "tabs","activeTab","<all_urls>"]

background.json

function apdateTabList() {
    chrome.contextMenus.removeAll(function() {
        chrome.tabs.query({url:'*://*/*'}, function (tabs) {
            var currTab;
            for (var i=0; currTab = tabs[i];i++) {
                chrome.contextMenus.create({
                    id : currTab.id.toString(),
                    title: currTab.title || currTab.url,
                    contexts:['all'],
                    onclick : function(info) {
                        chrome.tabs.executeScript(Number(info.menuItemId), {code:'alert("injected")'});
                    }
                });
            }
        });
    });
}
apdateTabList();
chrome.tabs.onCreated.addListener(apdateTabList);
chrome.tabs.onUpdated.addListener(apdateTabList);
chrome.tabs.onMoved.addListener(apdateTabList);
chrome.tabs.onDetached.addListener(apdateTabList);
chrome.tabs.onAttached.addListener(apdateTabList);
chrome.tabs.onRemoved.addListener(apdateTabList);
chrome.tabs.onReplaced.addListener(apdateTabList);

不,没有 UI 您可以在选项卡 本身 上创建。

单击选项卡不是您可以捕获的事件 - 您唯一可以捕获的事件是 changing of the active tab,您无法真正说明这是如何发生的,也无法阻止它 - 它已经发生了在您收到事件时发生。