【发布时间】:2019-01-09 07:18:39
【问题描述】:
我正在新窗口中打开扩展程序。 Background.js
chrome.browserAction.onClicked.addListener(function(msg, sender, response){
chrome.tabs.query({active: true, currentWindow: true}, function(tabs){
chrome.tabs.sendMessage(tabs[0].id, {tabId: tabs[0].id}, function(response) {});
// creating new window.
chrome.windows.create({ url: 'popup.html', width: 320, height: 480})
})
})
在打开新窗口之前,标签 ID 将是活动标签 ID,表示我打开 chrome 扩展程序的位置(例如:google.com)。我正在尝试在 popup.js 中访问该选项卡 ID。因为我想访问打开 chrome 扩展的页面(google.com)的 DOM。我怎样才能做到这一点?或者有没有其他方法可以在 popup.js 中获取标签 ID?
在 popup.js
中尝试了其他方式chrome.windows.getAll({populate:true}, function(tabs){
console.log(tabs)
});
我在这里获取 popup.js 中的所有窗口选项卡,但在这里我不知道打开扩展名的选项卡 ID(google.com)?
【问题讨论】:
-
chrome.windows.create({ url: 'popup.html', width: 320, height: 480})将在右侧创建新窗口。如果我使用chrome.tabs.getCurrent,它给出的是当前弹出窗口对象而不是 google.com 对象。 -
弹出是完整的新窗口,它不会作为窗口的一部分,我在其中打开了 chrome 扩展。
-
啊。您可以通过 url 参数(如
url: 'popup.html#' + tab.id)传递 id,然后将其提取到您的 popup.js 中。或者你可以发送一条消息,但这更复杂。 -
谢谢你也有效。但我以其他方式解决了,谢谢。
标签: google-chrome google-chrome-extension