web-dev-qa-db-ja.com

Chrome Extension:onclick extension icon、open popup.html in new tab

chrome拡張機能を作成し、popup.htmlを使用してwindow.openファイルを開くことができました。ただし、新しいタブで開きたいので、たくさん試しました以下を含むさまざまな方法:

<script type="text/javascript" language="JavaScript">
  chrome.tabs.create('url': 'popup.html');

コードを間違った場所に配置するだけですか、それとも完全に間違ったコードですか?

20
David

なぜpopup.htmlを新しいタブで開きたいのですか?そのために別のページを作成する必要があります。とにかく、popup.htmlを新しいタブで開きたい場合は、拡張URLを渡す必要があります。

http://code.google.com/chrome/extensions/extension.html#method-getURL

chrome.tabs.create({'url': chrome.extension.getURL('popup.html')}, function(tab) {
  // Tab opened.
});
21
Mohamed Mansour

これで、 イベントページ を使用して、default_popupページを作成せずに拡張機能アイコンをクリックしたときにpopup.htmlを新しいタブで開くことができます。

マニフェスト:

"background": {
    "scripts": ["background.js"],
    "persistent": false
}

js:

chrome.browserAction.onClicked.addListener(function(tab) {
    chrome.tabs.create({'url': chrome.extension.getURL('popup.html'), 'selected': true});
});
7
wander

http://code.google.com/chrome/extensions/tabs.html で説明されているように、chrome.tabs.create(オブジェクトプロパティ、関数コールバック)を使用します

オブジェクトのプロパティには、windowId、index、url、およびselectedのフィールドを含めることができます。オプションのコールバック関数は、新しく作成されたタブのTabオブジェクトを受け取ります。

したがって、現在のウィンドウに新しいタブを作成して選択する最も簡単な例は、次のようになります。

chrome.tabs.create({'url': chrome.extension.getURL('popup.html')});

なぜ新しいタブでpopup.htmlを表示したいのかわからないが、拡張機能の開発/デバッグ中に非常に便利だと思う...拡張機能ページに「通常」リンクしかないのはかなりの痛みだ背景ページに。

新しいウィンドウで、おそらくキオスクモードでそれを開く方法を知りたいです;-)

3
Draško Kokić