从内容脚本打开chrome选项卡
open a chrome tab from content script
我需要使用内容脚本打开一个chrome选项卡。我检查了chrome示例中的消息传递,并尝试了此操作
在内容脚本中:
chrome.runtime.sendMessage({greeting: "hello"}, function (response) {
console.log(response.farewell);
});
在后台.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"});
}
});
它工作得很好,问题是选项卡正在打开,但也有很多选项卡被打开。。。我需要做什么才能只打开一个选项卡?
当您运行内容脚本时,它也会在您打开的新选项卡中运行,因此它最终会打开无限多的选项卡。为了限制这种情况,可以将tabs.create
放在页面加载时不会立即运行的函数中。
问题很可能是您多次调用"chrome.runtime.onMessage.addListener",因此当它收到消息时,您添加的所有侦听器都会打开一个选项卡,每个选项卡都会打开。
相关文章:
- 从选项页面更新chrome扩展清单权限
- 单击Chrome通知后,转到已打开的选项卡
- 如何在Google chrome安全首选项文件中创建扩展安全哈希代码
- 更改Chrome扩展中的选项卡位置
- 如何重定向当前选项卡'Chrome扩展中的url
- 从弹出窗口打开chrome选项
- 唯一标识重复的Chrome选项卡
- 从内容脚本打开chrome选项卡
- 如何使用javascript查找chrome选项卡使用的内存
- 故意破坏Chrome扩展的Chrome选项卡
- 在Android(没有PC)的当前Chrome选项卡中执行JavaScript
- Web工作程序在传递具有数组缓冲区的大型对象数组时会崩溃Chrome选项卡
- 是否可以在chrome选项卡上执行后台页面的功能
- 使用JS代码清除chrome选项卡历史记录
- 如何获取javascript中的chrome选项卡源代码
- 窗口.chrome选项卡/窗口中的打开行为
- 发生了什么(或没有发生)在后台打开的chrome选项卡
- setInterval & # 39;栈# 39;当Chrome选项卡不显示
- 所有的chrome.选项卡也会出现同样的错误
- Chrome选项卡未激活时暂停JavaScript