簡體   English   中英

再次單擊瀏覽器操作圖標,關閉Chrome擴展程序彈出窗口

[英]Close a Chrome extension popup by clicking the browser action icon again

我正在開發一個Chrome擴展程序,我想知道是否可以通過再次單擊允許您打開彈出窗口的圖標來關閉彈出窗口:我嘗試了任何操作,但看起來您必須單擊其他位置才能關閉它。 文檔聲明onClicked事件是:

單擊瀏覽器操作圖標時觸發。 如果瀏覽器操作有彈出窗口http://developer.chrome.com/extensions/browserAction.html#popups ), 則不會觸發此事件

提前致謝。

[更新]我嘗試了下面的一半(!)工作:1。在popup.html我鏈接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();
}

會發生什么:第一次單擊打開應用程序,第二次關閉它,但它仍然是一個微型彈出窗口,圖標上沒有內容。 如果我刪除它,我達到了目標。

如果擴展程序的瀏覽器操作未在清單中定義default_popup ,則會調用onClicked事件。 文檔中的說明不是關於彈出窗口當前是否打開。

如果清單定義了default_popup則再次單擊該按鈕將關閉並重新打開該插件。 mousedown關閉,鼠標打開。 (因此,單擊按鈕並拖動並釋放鼠標會關閉彈出窗口,而不是任何人都應該這樣做。)

我建議設置default_popup並在html中為彈出窗口創建一個按鈕,用window.close;關閉彈出窗口window.close; ,或者在彈出窗口的用例中找到一個關閉有意義的點。

好吧已經很長時間了,問題/錯誤仍然存​​在於Chrome瀏覽器上。 我找到了一個解決方法,它並不好,但它可以滿足我的需求 - 在第二個圖標點擊時關閉窗口。 這是我在彈出的javascript文件中所做的:

if(localStorage.getItem('firstClick')==='true'){
    localStorage.setItem('firstClick', 'false');
    window.close();
}
else {
    localStorage.removeItem('firstClick');
    localStorage.set('firstClick', 'true')
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM