从事件页面更改选项卡的DOM

时间:2013-09-21 02:48:01

标签: javascript google-chrome dom google-chrome-extension

我有一个Event Page,我在其中设置了一些监听器,以便在用户更改当前标签中的URL时找出:

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

现在,我想在使用DOM时更改标签myFunction的某些部分。 我已经测试了一下,似乎我正在更改的DOM,它与用户已更改的标签不同。

我对此有点新意,我不知道是否必须使用Content Scripts

谢谢!

1 个答案:

答案 0 :(得分:2)

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

这来自Google Code documentation

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) {
   });