2015-01-26 46 views
0

當爲我的Chrome擴展程序單擊browserAction圖標時,我想阻止它顯示browserAction彈出窗口。我試圖使用browserAction圖標來觸發加載內容腳本。攔截browserAction.onClicked以防止顯示擴展頁面

我該怎麼做?

下並不妨礙它從開口道:

chrome.browserAction.onClicked.addListener(function (tab) { 
    alert('browserAction clicked'); 

    return false; 
}); 

下面是該我的manifest.json的條目:

"browser_action": { 
    "default_icon": { 
     "19": "images/icon-19.png", 
     "38": "images/icon-38.png" 
    }, 
    "default_title": "My extension" 
    } 

文檔說This event will not fire if the browser action has a popup,但是,你可以看到我沒有定義彈出窗口,但它仍然不起作用。

+0

如果您沒有彈出式設置,那麼「browserAction HTML模板窗口」是什麼意思? – Xan 2015-01-26 21:54:26

+0

@Xan我的意思是彈出。對不起,把術語弄糊塗了。修正了我的帖子。 – eComEvo 2015-01-26 21:56:07

回答

0

當您按the extension button時,會發生以下情況。

  1. 如果您對當前選項卡(例如,通過在清單或chrome.browserAction.setPopupdefault_popup鍵)定義的彈出式窗口,它被示出。 chrome.browserAction.onClicked沒有提出

  2. 如果沒有爲當前選項卡設置彈出窗口(或設置爲空),則調度chrome.browserAction.onClicked

因此,要永久禁用此功能,您只需從清單中刪除default_popup即可。要以編程方式禁用它,您需要取消設置:

chrome.browserAction.setPopup({ 
    popup: "", 
    // tabId: id // optional, restrict to a single tab 
}); 
+0

非常有趣!感謝您讓我知道如何以編程方式禁用。仍然沒有工作,但後來我刪除了擴展條目,並再次加載解壓後的擴展,現在它。欣賞替代路線! – eComEvo 2015-01-26 21:55:32

+0

「重新加載」鏈接應該沒問題。 – Xan 2015-01-26 21:56:03

+0

不幸的是,沒有工作。不知道爲什麼。 – eComEvo 2015-01-26 21:56:30