7
function doit() {
 alert(3);
 // Statement 1
 // chrome.tabs.create({url:"http://www.google.com"});
 // Statement 2
 // chrome.tabs.update({url:"http://en.wikipedia.org"});
 alert(4);
}


chrome.browserAction.onClicked.addListener(doit);

当脚本按原样运行时,我收到 3 和 4 的 JS 警报。好的。

当我在语句 1 中发表评论并运行脚本时,我收到 3 的 JS 警报,然后 Google 在一个新的活动选项卡中打开,然后我收到 4 的 JS 警报。正如预期的那样。

当我注释掉语句 1 并在语句 2 中注释时,我得到一个 JS 警报 3,仅此而已。

根据http://code.google.com/chrome/extensions/tabs.html#method-update,我不需要传递 tabId 对象,因为它“默认为当前窗口的选定选项卡”。url 对象被定义为“将选项卡导航到的 URL”,正如我在语句 1 中运行 chrome.tabs.create 时注意到的那样。

为什么我的 chrome.tabs.update 语句不起作用?

4

2 回答 2

8

tabId必须指定参数。null如果要使用默认设置,请提供。否则会出现以下错误:

“browserAction.onClicked”的事件处理程序出错:错误:参数 1 的值无效。应为“整数”但得到“对象”。

此消息记录在后台页面中。要访问此控制台,请按照此答案中的四个步骤操作。

更正的代码: chrome.tabs.update(null, {url:"http://en.wikipedia.org"});

于 2012-04-27T15:32:55.917 回答
0

您必须告诉它您要更新哪个选项卡 (tab.id)。

chrome.tabs.update(id,{url:"http://en.wikipedia.org"});
于 2012-04-27T12:38:42.460 回答