24

以前にこの質問をしましたが、Web ページの JavaScript ではなく、ユーザー スクリプトを意味していることを明確にしませんでした。

Google Chrome がユーザー スクリプト (基本的には、Web ページで実行されるスクリプトではなく、ブラウザの拡張機能として実行されるスクリプト) を介してシークレット モードであるかどうかを判断することは可能ですか?

4

3 に答える 3

11

ウィンドウがシークレット モードかどうかを検出するには、関連する 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
}

http://code.google.com/chrome/extensions/overview.html

于 2010-05-26T21:20:00.890 に答える
8

拡張機能を開発している場合は、タブ API を使用して、ウィンドウ/タブのシークレットかどうかを判断できます。

詳細については、code.google.comをご覧ください。

Web ページやユーザー スクリプトを操作するだけでは簡単ではありませんが、そのように設計されています。ただし、シークレット モードではデータベース (window.database) を開こうとするとすべて失敗することに気付きました。これは、シークレット モードではユーザーのマシンにデータの痕跡を残すことができないためです。

私はそれをテストしていませんが、localStorage へのすべての呼び出しも失敗すると思われます。

于 2010-05-26T22:02:13.457 に答える
2

最近では、コンテンツ スクリプトからこれを行うのは非常に簡単です。使うだけ

if(chrome.extension.inIncognitoContext) {
    //you're incognito
} else {
    //you're not
}
于 2016-08-10T07:51:10.453 に答える