2012-11-03 6 views
6

Chrome拡張機能を開発しています。ポップアップを開くアイコンをもう一度クリックするだけでポップアップを閉じることができるかどうかを知りたかったのです。それ以外の場所をクリックして閉じる必要があります。ドキュメントにはonClickedのイベントは次のとおりです。ブラウザのアクションアイコンをもう一度クリックしてChrome拡張機能のポップアップを閉じる

ブラウザのアクションアイコンがクリックされたときに発生します。ブラウザのアクションにポップアップhttp://developer.chrome.com/extensions/browserAction.html#popups)がある場合、このイベントは発生しません。

ありがとうございます。

[更新]私は以下を試してみました:(!)作品: 1. popup.jsにリンクしています。 2. popup.jsは、background.jsに含まれる変数の値を読み取ります。

var currentStatus = chrome.extension.getBackgroundPage().open; 
if(currentStatus==0){ 
    chrome.extension.getBackgroundPage().open=1; 
}else{ 
    chrome.extension.getBackgroundPage().open=0; 
    window.close(); 
} 

何が起こる:最初のクリックは、第二は、それを閉じて、アプリを開いて、しかし、それは、アイコン上にコンテンツのないマイクロポップアップのまま。それを取り除くと、私は目標に達しました。

+1

:ここで私はjavascriptのファイル、ポップアップでやったことです。 –

+0

@Rob W:正しく動作させる方法が見つからなかったので、すべてのコードを削除しました。ご意見ありがとうございます! – ContentiousMaximus

+1

Chrome 28では、ブラウザのアクションアイコンを2回クリックするとポップアップが閉じられ、特別なコードは必要ありません。 –

答えて

3

拡張子のブラウザアクションでマニフェストにdefault_popupが定義されていない場合、onClickedイベントが呼び出されます。ドキュメントからのメモは、ポップアップが現在開いているかどうかについてのものではありません。

マニフェストでdefault_popupと定義されている場合は、もう一度ボタンをクリックすると、プラグインが閉じて再び開きます。マウスが閉じ、マウスアップが開きます。 (ボタンをクリックしてマウスを離してドラッグするとポップアップが閉じられますが、誰でもこれを行う必要はありません)。default_popupを設定し、ポップアップを閉じるボタンをwindow.close;あなたのポップアップのユースケースで、終了が意味をなさない点を見つけてください。

1

さて、これまでのところ、Chromeブラウザでは問題が残っています。私は回避策を見つけました、それは素晴らしいことではありませんが、私が必要とすることを行います - 2番目のアイコンクリックでウィンドウを閉じます。私は強くあなたが今、背景ページの組み込み関数 `window.open`を上書きしているので、open``とは異なる性質を選択することをお勧めします

if(localStorage.getItem('firstClick')==='true'){ 
    localStorage.setItem('firstClick', 'false'); 
    window.close(); 
} 
else { 
    localStorage.removeItem('firstClick'); 
    localStorage.set('firstClick', 'true') 
} 
関連する問題