質問

私はいくつかの複雑なjavascriptを持つ新しいプロジェクトに取り組んでいます。コードを投稿できないので、質問の内容とは異なります。

Firefox 3.0 で動作するスクリプトがあります。スクリプトが Firefox 3.5 で動作しないことが指摘されたため、動作させようとしています。実際、スクリプトは予期した結果を生成しなかったため、 Firebug の最新バージョンをインストールし、 console を有効にしてページを更新しました。

そしてすごい、うまくいきました。

エラーなし、警告なし。

だからコンソールを無効にしたのですが、もう機能しませんでした...

ここで何が起こっていますか? Firebugコンソールは、私のスクリプトを機能させるFirefoxの何かを何らかの形で変更しますか?次に何をするかアドバイスはありますか?(今後の訪問者にFirebugをインストールするように頼む...)

役に立ちましたか?

解決

JavaScriptのどこかで console.log()への呼び出しをコメントするのを忘れるような簡単なことでしょうか?

ハングする参照があり、ユーザーにFirebugがインストールされていない場合、スクリプトの実行を停止するランタイムエラーが発生します。

他のヒント

スレッドの問題が発生する可能性があるように思えますが、FireBugはスレッドの1つを分析し、場合によっては速度を落として、次のステップが解決されるまでに時間がかかるようにします。

ajaxを利用している可能性がありますが、その応答を待っていますか?または、DOMの他の何かに依存しているオブジェクトのロード時またはロード後に何かをしているのでしょうか?

更新: これにつまずいた人のために、「スレッド」 JavaScriptでは、実際には抽象化(Webワーカーなど)のみに存在します。私はこの用語を誤って使用していました。私は別のアクションが準備される前に戻る非同期アクションを本当に考えていました。

console.log()、console.debug()のコードをチェックインします。コンソールが未定義の場合(予想どおり)、window.consoleオブジェクトのメソッドを呼び出すとエラーがスローされます。

ほとんどの場合、その行を簡単に削除またはコメントできます。

firebugの簡単なラッパーを作成しました(debugを使用するだけですが、他のメソッドを複製するために必要なものを提供する必要があります)。デバッグステートメントを出力します。デバッグステートメントがなければ、サイトを壊すことはありません。

このコードを使用する場合、console.debugの代わりにfbconsole.debugを使用すると、この問題は発生しません。

function fbconsole () {
    this.debug = function (val) {
        if(typeof(console) !== 'undefined' && console != null) {
            console.debug(val);
            }
        }
    }
var fbconsole = new fbconsole();
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top