chrome.tabs.create - 从不调用回调函数

时间:2014-04-02 20:22:00

标签: javascript google-chrome google-chrome-extension

我想使用Chrome扩展程序创建新标签页,并在加载标签页时显示tab.id。页面已加载,但回调函数无效(现在显示tab.id警告)。

background.js 文件:

chrome.tabs.create({'url': 'http://www.google.com'}, function(tab){ alert(tab.id) })

manifest.json 文件:

 {
     "name": "Test",
     "version": "1.0",
     "description": "Test plugin",
     "browser_action": {
         "default_popup": "popup.html",
         "default_icon":"icon.png"
     },
     "background": {
         "scripts": ["background.js"]
     },
     "manifest_version":2,
     "permissions": [
          "tabs",
          "http://*.facebook.com/*",
          "http://*.google.com/*",
          "storage"
     ]
}

popup.html 文件:

<html>
  <head>
    <title>Test tabs</title>
  </head>
  <body>
    <script type="text/javascript" src=/background.js"></script>
  </body>
</html>

可能有什么问题?

3 个答案:

答案 0 :(得分:2)

您的代码必须位于background pages

这是在 manifest.json 文件中:

"background" : {"scripts" : ["background_script.js"] }

"background" : {"page" : "background_page.html" }

当您在背景页面中引用文件时,需要使用绝对路径:

<script type="text/javascript" src="/background.js"></script>

答案 1 :(得分:0)

我认为回调函数在另一个上下文中执行,并且警报将不起作用。 尝试打开后台页面和DevTools并使用console.log(tab.id)查看选项卡ID。

答案 2 :(得分:-1)

这是我的解决方案:
chrome.tabs.create({url: URL, selected: false}, function(tab) { alert(tab.id) })

不确定这是否符合预期,但警报会有效!