2014-05-07 26 views
-1

如果隱身模式已激活,我可以使用Chrome擴展程序進行檢查嗎?或者我可以使用擴展程序中的按鈕啓動隱身模式嗎?Chrome瀏覽器擴展程序隱身模式:檢查是否已啓動或按鈕啓動?

+0

@RobW我相信這個重複的狀態是不正確的。引用的問題告訴您如何查看擴展程序是否允許在隱身模式下運行,但是此問題是詢問如何確定您目前是否使用隱身模式運行窗口。這是兩回事。 – bridiver

回答

4

首先,對擴展程序如何與隱身模式進行交互的一些說明。請注意,默認無法在隱身模式下運行或影響/檢測隱身標籤。用戶必須在您的擴展程序的Chrome擴展程序設置中明確啓用該功能。

您可以通過檢查chrome.extension.isAllowedIncognitoAccess()(注意它的異步性質)來檢測您是否允許隱身訪問。如果它返回false,你可以guide the user to enable it(感謝Rob W的鏈接)。

當您被授予訪問權時,會發生什麼情況由"incognito" setting in the manifest控制。

如果設置爲「spanning」(默認),則您將擁有一個後臺頁面,可訪問正常和隱身上下文。不過,該方法有some limitations

如果設置爲「分割」,您將有2個實例。您可以使用chrome.extension.inIncognitoContext來檢測您所在的位置。


現在,你的問題。假設您已被允許進行隱身訪問。

要檢測給定選項卡/窗口中的隱身模式,您可以檢查相應對象的incognito屬性,即由chrome.windows.getCurrent返回。

代碼示例瀏覽器操作點擊:

chrome.browserAction.onClicked.addListener(function(tab) { 
    if(tab.incognito){ 
    // Clicked in an Incognito window 
    } else { 
    // Clicked in a normal window 
    } 
}); 

用於打開新的隱身標籤頁/窗口,你可以通過incognito: true對象中的描述要創建的標籤/窗口。

您不需要上述任何一項的tabs權限。有關更多詳細信息,請參閱TabsWindows API文檔。

+0

清單中的「隱身」鍵與啓用/禁用隱身模式無關。最近的人可以得到一個「啓用隱身模式」按鈕在[如何在隱身模式下啓用我的Chrome擴展?](http://stackoverflow.com/questions/17438354/how-can-i-enable- my-chrome-extension-in-incognito-mode/17443982#17443982) –

+0

@RobW感謝您的有用鏈接。然而,我沒有聲稱這可以啓用隱身模式 – Xan

+0

然後,您可以通過提及'「隱身」清單密鑰來澄清您的意圖嗎?我不知道你的意思是「接下來發生的事情是由清單中的」隱身「設置控制的。」在這個問題的背景下。 –

相關問題