0

我有一个Event Page,我在其中设置了一些侦听器,以了解用户何时更改了当前选项卡中的 URL,使用:

chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) {
    myFunction(tab);
});

现在,我想更改选项卡的某些部分DOM,使用myFunction. 我已经对其进行了一些测试,似乎DOM我当前正在更改,它与选项卡的不同,该用户已更改。

我对此有点陌生,我不知道我是否必须使用Content Scripts.

谢谢!

4

1 回答 1

2

如果您询问如何更改选项卡的 DOM,我会为此使用内容脚本。postMessage如果需要,然后使用在您的事件页面和您的内容脚本之间进行通信,但事件页面可能会消失,因此这可能不是一个可靠的渠道。

这是来自谷歌代码文档

chrome.browserAction.onClicked.addListener(function(tab) {
  chrome.tabs.executeScript(null,
                           {code:"document.body.bgColor='red'"});
});

如果您询问如何获取当前选项卡,获取当前选项卡可能会因上下文而异。以下是最近对我有用的方法。

在浏览器操作的 popup.html 中,我有:

  chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
      var current;
      if (_.isEmpty(tabs)) {
        return;
      }
      current = tabs[0];
   });

在 chrome-extention:// 我使用:

   chrome.tabs.getCurrent(function(tab) {
   });
于 2013-09-21T02:56:14.627 回答