私は jQuery プラグインに取り組んでおり、デバッグ用の統一されたクロスブラウザー コンソール オブジェクトを作成しようとしています。プラグインは Firebug または FirebugLite を利用しますが、利用可能な場合、ユーザーはブラウザのネイティブ コンソール オブジェクトを選択することもできます。Safari/Chrome の場合、コンソール メソッドは 1 つの引数のみを受け入れますが、Firebug コンソール API (これを複製しようとしています) は、連結された文字列として出力される任意の数の引数を受け入れます。次のコードを使用して、ネイティブのコンソール ログ メソッドをオーバーライドしています。
window.console._log = window.console.log;
window.console.log = function(){
window.console._log($.makeArray(arguments).join(", "));
};
クリックすると console.log("str1", "str2") コマンドを実行するテスト ページがあります。最初の数回は、ログ メッセージは期待どおりに機能しますが、しばらくすると (通常はほんの数秒)、ログ メッセージは最初の引数のみを出力し始めます。コンソール オブジェクトが元のネイティブ状態に復元され、オーバーライドされた log() メソッドが破棄されているかのようです。誰かがこれについてもっと情報を持っていますか、それとも回避策がありますか?