以前にこの質問をしましたが、Web ページの JavaScript ではなく、ユーザー スクリプトを意味していることを明確にしませんでした。
Google Chrome がユーザー スクリプト (基本的には、Web ページで実行されるスクリプトではなく、ブラウザの拡張機能として実行されるスクリプト) を介してシークレット モードであるかどうかを判断することは可能ですか?
以前にこの質問をしましたが、Web ページの JavaScript ではなく、ユーザー スクリプトを意味していることを明確にしませんでした。
Google Chrome がユーザー スクリプト (基本的には、Web ページで実行されるスクリプトではなく、ブラウザの拡張機能として実行されるスクリプト) を介してシークレット モードであるかどうかを判断することは可能ですか?
ウィンドウがシークレット モードかどうかを検出するには、関連する Tab または Window オブジェクトのincognito プロパティを確認します。例えば:
var bgPage = chrome.extension.getBackgroundPage();
function saveTabData(tab, data) {
if (tab.incognito) {
bgPage[tab.url] = data; // Persist data ONLY in memory
} else {
localStorage[tab.url] = data; // OK to store data
}
拡張機能を開発している場合は、タブ API を使用して、ウィンドウ/タブのシークレットかどうかを判断できます。
詳細については、code.google.comをご覧ください。
Web ページやユーザー スクリプトを操作するだけでは簡単ではありませんが、そのように設計されています。ただし、シークレット モードではデータベース (window.database) を開こうとするとすべて失敗することに気付きました。これは、シークレット モードではユーザーのマシンにデータの痕跡を残すことができないためです。
私はそれをテストしていませんが、localStorage へのすべての呼び出しも失敗すると思われます。
最近では、コンテンツ スクリプトからこれを行うのは非常に簡単です。使うだけ
if(chrome.extension.inIncognitoContext) {
//you're incognito
} else {
//you're not
}