[解決済み] Chromeのコンソールが開いているかどうかを確認する
質問
Firebugが開いているかどうかを調べるために、この小さなスクリプトを使っています。
if (window.console && window.console.firebug) {
//is open
};
そして、それはうまく動作します。さて、Google Chromeの内蔵Web開発者コンソールが開いているかどうかを検出する方法を30分ほど探していたのですが、ヒントが見つかりませんでした。
これです。
if (window.console && window.console.chrome) {
//is open
};
は動作しません。
EDITです。
ということで、Chromeのコンソールが開いているかどうかの検出はできないようです。でも、"はあります。 ハック "は動作しますが、いくつかの欠点があります。
- コンソールをドッキング解除すると動作しません
- ページロード時にコンソールが開いている場合は動作しません。
しかし、もし誰かが素晴らしいアイデアを思いついたら、その人が回答してくれても構わないし、私は選択した回答を変更します。ありがとうございます。
解決方法は?
requestAnimationFrame (2019年後半)
歴史的な文脈から、これらの過去の回答をここに残しておきます。現在 ムハンマド・ユメルの考え方 は、Chrome 78で動作し、閉じるイベントと開くイベントの両方を検出できるという利点があります。
関数 toString (2019)
クレジット
Overcl9ck
のコメントで、この答えになりました。正規表現に置き換える
/./
を空の関数オブジェクトに置き換えても、まだ動作します。
var devtools = function() {};
devtools.toString = function() {
if (!this.opened) {
alert("Opened");
}
this.opened = true;
}
console.log('%c', devtools);
// devtools.opened will become true if/when the console is opened
正規表現 toString (2017年~2018年)
元の質問者はもういないようですし、これはまだ受け入れられている答えなので、視認性のためにこの解決策を追加します。謝辞は
アントニン・ヒルデブランド
's
コメント
について
ツァン
's
答え
. この解決策は
toString()
は、コンソールが開かれていない限り、ログに記録されたオブジェクトでは呼び出されません。
var devtools = /./;
devtools.toString = function() {
if (!this.opened) {
alert("Opened");
}
this.opened = true;
}
console.log('%c', devtools);
// devtools.opened will become true if/when the console is opened
コンソール.プロファイル(2013年)
更新しました。
console.profiles
はChromeから削除されました。この解決策はもう使えません。
ありがとうございます ポール・アイリッシュ から、この解決策をご指摘いただきました。 ディスカバー・デブツールズ プロファイラを使用しています。
function isInspectOpen() {
console.profile();
console.profileEnd();
if (console.clear) {
console.clear();
}
return console.profiles.length > 0;
}
function showIfInspectIsOpen() {
alert(isInspectOpen());
}
<button onClick="showIfInspectIsOpen()">Is it open?</button>
window.innerHeight(2011年)
この他のオプションは、ドッキングされたインスペクタを検出することができます。 が開かれた後 しかし、ドッキングされていないインスペクタや、ページロード時にインスペクタがすでに開かれていた場合は検出できません。また、誤検出の可能性もあります。
window.onresize = function() {
if ((window.outerHeight - window.innerHeight) > 100) {
alert('Docked inspector was opened');
}
}
関連
-
Vueのフィルタの説明
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] URLを新しいタブで開く(新しいウィンドウではない)
-
[解決済み] Chromeの同一生成元ポリシーを無効にする
-
[解決済み] ウェブサイト制作のためのChromeキャッシュの無効化
-
[解決済み] どのDOM要素にフォーカスがあるかを調べるには?
-
[解決済み] JavaScriptのコンソールでの色
-
[解決済み] Chromeデベロッパーツールで:hoverの状態を見る
-
[解決済み】jQueryでチェックボックスがチェックされているかどうかを確認するにはどうすればよいですか?
-
[解決済み】自己署名付きlocalhost証明書をChromeが受け入れるようにする方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
JavaScriptの関数この指摘の問題を説明
-
Vueがechartsのtooltipにクリックイベントを追加するケーススタディ
-
vue+webrtc(Tencent cloud)ライブ機能の実践を実現するために
-
[解決済み】最大呼び出しスタックサイズ超過エラー
-
[解決済み] Error : 未定義のプロパティ 'map' を読み取ることができません。
-
[解決済み】GETできない / Nodejsエラー
-
[解決済み】TypeErrorの解決方法。未定義またはヌルをオブジェクトに変換できない
-
JavaScriptのStringに関する共通メソッド
-
OSSアップロードエラーを解決する: net::ERR_SSL_PROTOCOL_ERROR
-
JavaScriptのgetElementById、getElementsByTagNam、getElementsByClassNameの違いと使い方