2012-04-27 1 views
6
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 OKのJSアラートを取得します。"chrome.tabs.createは" 動作しますが、 "chrome.tabs.updateは" スクリプトをそのまま実行していない

文1でコメントしてスクリプトを実行すると、JSのアラートが3になり、 Googleが新しいアクティブなタブで開き、JSアラートが4になります。

私はステートメント1をコメントアウトし、ステートメント2でコメントすると、JSのアラート3( )が表示されます。

http://code.google.com/chrome/extensions/tabs.html#method-updateによると、 "現在のウィンドウの選択されたタブにデフォルト設定されている"ため、tabIdオブジェクトを渡す必要はありません。 URLオブジェクトは、文章1でchrome.tabs.createを実行したときに、私が と気付いたように、「タブをナビゲートするURL」として定義されています。

chrome.tabs.update文が機能しないのはなぜですか?

答えて

0

更新するタブ(tab.id)を教えてください。

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

によると、 tabIdが選択されたオプションで、「デフォルトです現在のウィンドウのタブ "を選択します。 – mdslup

5

tabIdパラメータを指定する必要があります。既定の設定を使用する場合は、nullを入力します。それ以外の場合は、次のエラーが発生します。

Error in event handler for 'browserAction.onClicked': Error: Invalid value for argument 1. Expected 'integer' but got 'object'.

このメッセージは、背景ページで記録されます。このコンソールにアクセスするには、this answerの4つの手順に従います。

修正されたコード:chrome.tabs.update(null, {url:"http://en.wikipedia.org"});

+0

これは動作します。ありがとう。 「オプションの議論」の私の定義は、常にそれだけであった...それは渡される必要はない。 また、バックグラウンドページにアクセスする方法についての情報に感謝します。 – mdslup

関連する問題