“chrome.tabs.create”有效,但“chrome.tabs.update”没有

时间:2012-04-27 12:14:31

标签: google-chrome-extension

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警报 谷歌在一个新的,活动的标签页面中打开,然后我得到了一个4的JS警报。正如预期的那样。

当我在声明1中注释掉声明1并发表评论时,我得到了一个3的JS警报, 就是这样。

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

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

2 个答案:

答案 0 :(得分:5)

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

  

'browserAction.onClicked'事件处理程序出错:错误:参数1的值无效。预期'整数'但得到'对象'。

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

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

答案 1 :(得分:0)

您必须告诉它要更新哪个标签(tab.if)。

chrome.tabs.update(id,{url:"http://en.wikipedia.org"});