2012-03-11 9 views
4

Google Chrome拡張機能にbackground-pageがあり、このページは自然に表示されません。ブラウザのアクションアイコンがクリックされたときにポップアップでこの隠しページを見えるようにする方法はありますか?もう一度クリックすると再び非表示になります。Google Chrome拡張機能で背景ページを表示する

答えて

6

tabs permissionが必要なchrome.tabs.createメソッドを使用して背景ページを表示できます。あなたの背景ページがbackground.html呼び出された場合、例えば、次のコードを使用することができます。

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

参照:

+2

新しいタブの背景ページは、背景に見えないページと同じページになるか、ページの別のインスタンスが開かれますか?見えない背景ページは見えないままですか? – Nyxynyx

+3

@Nyxynyxこれは 'background.html'の新しいインスタンスです。 'Active views'セクションに2つの' background.html'リンクが表示されます。また、 'chrome.extension.getBackgroundPage()== window'は' false'です。隠されたアクティブな背景ページを表示する** ** **方法はありません。拡張機能のリンクを使用すると、バックグラウンドページの開発者ツールが表示されます。この画面では、すべての機能(ライブDOMインスペクタを含む)を利用できます。 –

+0

バックグラウンドページの開発者ツールが本当に助けてくれてありがとう!デバッグの目的でページを見に行くことができると思います。 – Nyxynyx

0

ますbackround_pageを開くことができますa browserActionpopupです。ただし、background_pageの新しいインスタンスになります。ポップアップの1つは開いているが、長くは見えないものがバックグラウンドであった。

0

エクステンションのポップアップページに、ユーティリティーchrome.runtime.getBackgroundPage(callback)のJSを追加します。あなたの背景ページid<html>要素を与え、例えばwindow.getElementById("myBackgroundPageHTMLElementId")

を使用し、あなたのコールバックは次のようになります。これは、スクリプトが完了JS

document.getElementById("myPopupHTMLElementId").outerHTML = backgroundWindow.getElementById("myBackgroundPageHTMLElementId").outerHTML 

した後、あなたのポップアップページのHTML要素になりますバックグラウンドページに完全に置き換えられます(リロードするまで)!これは、HTML要素上のすべての属性が背景ページのバージョンに設定されていることを意味します。

希望すると便利です。

関連する問題