我想使用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>
可能有什么问题?
答案 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) })
不确定这是否符合预期,但警报会有效!