为了账号安全,请及时绑定邮箱和手机立即绑定

这3行和tabs.query相关的代码到底哪出了问题。。

这3行和tabs.query相关的代码到底哪出了问题。。

沧海一幻觉 2018-07-23 11:26:16
想实现一个功能:打开新tab时,检测当前有没有百度的tab,如果有(为了测试方便,该百度的tab一开始就存在了),那就关闭掉该tab。这功能一开始我是做成了,但后来不知道发神经修改了哪里,导致出了BUG。后来为了测试方便,我把“关闭掉tab”的语句改成了"window.alert(tb.length)",看看有没有值传到tb上,结果tb.length输出为0,意味着并没有搜到百度的tab(但是前面说了,该百度tab我是提前打开了的,理应能匹配的到)chrome.tabs.onCreated.addListener(function(tab) {chrome.tabs.query({url:"https://www.baidu.com/"},function(tb){alert(tb.length)});});至于json的文件,我是一直没动过的,应该没什么问题,不过一起发上来吧:"manifest_version": 2,"name": "demo","version": "1.0.0","description": "简单的Chrome扩展demo","permissions": ["storage"],"permissions": ["tabs"],"permissions": [ "activeTab"],"background":{"scripts": ["background.js"],"persistent": false}
查看完整描述

1 回答

?
蓝山帝景

TA贡献1843条经验 获得超7个赞

配置文件出错了啊,json对象出现多个相同的属性,只有最后一个生效,所以 你的permissions只对当前激活的tab有效,无权限访问所有tabs,整合一起就行了

{
    "manifest_version": 2,
    "name": "demo",
    "version": "1.0.0",
    "description": "简单的Chrome扩展demo",
    "permissions": ["storage","tabs","activeTab"],

    "background":
    {
        "scripts": ["background.js"],
        "persistent": false
    }
}


查看完整回答
反对 回复 2018-07-30
  • 1 回答
  • 0 关注
  • 603 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信