我有一个事件页面
,其中我设置了一些监听器来查找用户何时更改当前选项卡中的 URL,使用:
chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) {
myFunction(tab);
});
现在,我想使用 myFunction
更改选项卡 DOM
的某些部分。
我测试了一下,似乎我当前正在更改的 DOM,它与选项卡的不一样,该用户已更改。
我对此有点陌生,我不知道是否必须使用内容脚本
。
谢谢!
最佳答案
如果您询问如何更改选项卡的 DOM,我会使用内容脚本。然后,如果需要,可以使用 postMessage
在事件页面和内容脚本之间进行通信,但事件页面可能会消失,因此这可能不是可靠的 channel 。
这来自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) {
});
关于javascript - 从事件页面更改选项卡的 DOM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18928386/