Javascript 从内容脚本打开chrome选项卡
我需要使用内容脚本打开一个chrome选项卡。 我检查了chrome示例中的消息传递,并尝试了这个Javascript 从内容脚本打开chrome选项卡,javascript,google-chrome,google-chrome-extension,Javascript,Google Chrome,Google Chrome Extension,我需要使用内容脚本打开一个chrome选项卡。 我检查了chrome示例中的消息传递,并尝试了这个 在内容脚本中: chrome.runtime.sendMessage({greeting: "hello"}, function (response) { console.log(response.farewell); }); 在background.js中 chrome.runtime.onMessage.addListener( function (request,
在内容脚本中:
chrome.runtime.sendMessage({greeting: "hello"}, function (response) {
console.log(response.farewell);
});
在background.js中
chrome.runtime.onMessage.addListener(
function (request, sender, sendResponse) {
chrome.extension.getBackgroundPage().console.log('resp.type');
console.log(sender.tab ?
"from a content script:" + sender.tab.url :
"from the extension");
if (request.greeting == "hello") {
chrome.tabs.create({url: 'http://google.com'});
sendResponse({farewell: "goodbye"});
}
});
它工作正常,问题是该选项卡正在打开,但也打开了很多选项卡…我需要做什么才能只打开一个选项卡?当您运行内容脚本时,它也会在您打开的新选项卡中运行,因此它最终会打开无限多的选项卡。要限制这一点,您可以将
选项卡放置在一个函数中,该函数在页面加载时不会立即运行。问题很可能是您多次调用“chrome.runtime.onMessage.addListener”,因此当它收到消息时,您添加的所有侦听器都会打开一个选项卡,每设置一次。否,它仍在打开。。现在它从选项卡位置0开始打开,而不是之前的下一个选项卡..我算出了。请给我一点时间更新答案。@AR7:您不必删除旧内容,因为这样可以提供完整的编辑历史记录(如果有人愿意查看)。我的意思是,有时删除内容是有意义的,但可能只适用于流行的正确答案过时的情况。@Xan您能检查一下吗?需要知道我是否可以让后台脚本只运行一次..您的内容脚本是如何注入的?添加相关的清单规则