"chrome.tabs.create"有效,但"chrome.tabs.update"没有

mds*_*lup 7 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);
Run Code Online (Sandbox Code Playgroud)

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

当我在语句1中发表评论并运行脚本时,我得到一个3级的JS警报,然后Google在一个新的活动选项卡中打开,然后我得到一个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语句不起作用?

Rob*_*b W 6

tabId参数必须指定.供应null,如果你想使用默认设置.否则,会发生以下错误:

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

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

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


Rob*_*phy 0

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

chrome.tabs.update(id,{url:"http://en.wikipedia.org"});
Run Code Online (Sandbox Code Playgroud)