错误注入脚本在其他选项卡在我的chrome扩展
Error injecting a script in others tabs in my chrome extension
这是我第一次尝试建立一个chrome扩展。我选择了第一个例子,并根据我的需要修改了它。
我想建立一个chrome扩展,可以控制不同选项卡上的youtube播放器从弹出式菜单
首先我想显示所有打开的youtube标签的列表。这很好。之后,我想在每个选项卡中插入一个脚本。
这就是问题发生的地方:开发控制台显示以下错误
Error during tabs.executeScript: Unknown error. sendRequest:22
chromeHidden.handleResponse sendRequest:22
Callback worked
我的清单。Json是这样的
{
"manifest_version": 2,
"name": "YoutubeMusicControl",
"description": "First Try",
"version": "1.0",
"permissions": [
"tabs",
"http://*/",
"https://*/"
],
"browser_action": {
"default_icon": "icon.png",
"default_popup": "popup.html"
}
}
除了运行脚本之外,pop .html没有做任何特别的事情。
这里是有趣的部分
var TabControl = {
listCurrentTabs : function(){
var name = "";
var div;
chrome.tabs.query({}, function(tabs){
for(var i = 0; i < tabs.length; i++){
var found = tabs[i].url.search(/.*youtube.*/);
if(found != -1){
div = document.createElement('div');
name = tabs[i].title;
div.className = "entry";
div.innerHTML = name;
document.body.appendChild(div);
chrome.tabs.executeScript(i,{
code:"alert('test');"
},function(results){console.log("Callback worked")});
}
}
});
}
}
document.addEventListener('DOMContentLoaded', function () {
TabControl.listCurrentTabs();
});
如果我改变参数i为null(当前选项卡),一切工作正常。看起来好像我没有权限或者参数有问题,但是我不能让代码工作。
有人知道为什么代码不能工作吗?
Thanks in advance
您的答案在executeScript
的参数中。如果你没有指定一个tabID
,它默认是你当前的活动选项卡(这就是当你给它null
时发生的事情)。
然而,当您为它提供可选的整数时,您需要注意这个整数是,而不是表列表中选项卡的索引,而是它的实际ID(在您的情况下可以使用tab[i].id
获得)。
使用选项卡的唯一ID将使您的代码工作。把executeScript(i
改成executeScript(tabs[i].id
相关文章:
- 清单文件中的update_url禁用了我的chrome扩展
- 尝试从我的 chrome 扩展程序访问 gmail 中的 iframe 时出现未定义的错误,但不是从开发者控制台访问
- 如何在我的Chrome扩展中包含外部对象
- 如何在我的chrome扩展中授权用户
- 如何检查我的 chrome 扩展程序的 if 语句中的单词列表
- 在我的 chrome 网上商店应用程序中禁用检查元素/JavaScript 控制台
- 如何使我的Chrome扩展只注入一次脚本
- 如何使用javascript在我的chrome扩展中获取当前选项卡的URL
- 当我移动到另一个选项卡时,如何停止我的Chrome扩展
- 我可以从我的Chrome扩展中获得可用的区域设置翻译列表吗
- I'我试图让jquery在我的chrome扩展的background.js中工作,结果成功了;不起作用.为什么?
- 有没有一种方法可以为我的Chrome扩展唯一标识内容脚本运行的iframe
- 检测用户是否安装了我的Chrome扩展
- 如何从我的Chrome扩展中获取变量'的背景脚本
- 是否可以从我的Chrome扩展在窗口中显示网页,只使用JS、HTML和CSS
- 我能判断我的Chrome扩展是否在Windows上运行吗
- 窗口.Setinterval是't工作与我的chrome扩展
- 只允许请求从我的chrome扩展
- 我的chrome扩展将不会加载,直到我重新加载/刷新相同的YouTube视频页面再次
- 为什么我的chrome扩展脚本不在网页上工作