console.log()ステートメントがSafariエラーログに表示されない
-
10-07-2019 - |
質問
Safari固有のjavascriptの問題をデバッグしていますが、 console.log
を取得してエラーログに出力できません。これは、文書化された機能です。 Safari(バージョン4.0.3を使用しています)。ただし、私のコード内のこれらのステートメントは無視されるようです。なぜですか?
解決
コンソールで直接テストし、サンプルファイルを作成する提案をしてくれたBretonとSeanJAに感謝します。これを行った後、console.logは実際には隔離された環境で動作していることに気付きました。これは、それが私の開発環境に特有なものでなければならないことを実感しました。調べてみると、Firebugが有効になっていないブラウザーのコンソールオブジェクトを定義するように設計されたJavaScriptが早い段階でロードされていることがわかりました。
if (!("console" in window) || !("firebug" in console))
{
var names = ["log", "debug", "info", "warn", "error", "assert", "dir", "dirxml",
"group", "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd"];
window.console = {};
for (var i = 0; i < names.length; ++i)
window.console[names[i]] = function() {}
}
これは、Safariがエラーウィンドウ用のコンソールオブジェクトを実装する前に書かれたようです。
これを削除しましたが、現在はすべて正常に動作します。ありがとう、みんな。
他のヒント
MacまたはWindowsビルドを使用していますか
Windowsビルドでは、&quot; Develop&quot;のほとんどのものを使用できません。男性、javascriptオプションはどれも私には機能しません。使用できるのは
のみです- ページを開く
- ユーザーエージェント
- スニッパーエディターを表示
- 無効*
Firefoxでは、console。*関数が機能するためにはfirebugコンソールを開く必要があることを知っています。おそらく同じですか?
デバッグモードを有効にしてみてください。これが何らかの違いをもたらすかどうかはわかりませんが、試してみてください:デバッグモードを有効にする手順