外部JSファイルにブレークポイントを設定していますが、Firebugに一貫した方法でブレークポイントをヒットさせることができませんでした。時々動作しますが、ほとんどの場合は動作しません。私がそれを機能させる唯一の方法は、「すべてのエラーでブレーク」をオンにすることです
私はデバッガを使用しました。文も運がなければ。
行番号が緑色でない場合、Firebugは範囲外であるため、コードのその部分をデバッグできないようです。したがって、$(function(){...});のようなものを使用している場合Firebugは関数と変数にアクセスできなくなります。
それは理にかなっていますか?
また、他の関数または何かが、デバッグしようとしている関数をオーバーライドしている可能性があります。同じJSファイルを2回インクルードすることも可能です。
お役に立てば幸いです。
Firebug 1.4を使用してフレーム内のページをデバッグしようとしたときに、この問題が発生しました。 「このフレーム」コンテキストメニューから「このフレームのみを表示」または「新しいタブでフレームを開く」を選択し、ページを更新すると、スクリプトがデバッグ可能になるようです。
私もこの問題を頻繁に抱えています。タブを再度開くと役立つように思われることがわかりました(ブレークポイントは失われません)。しかし、「すべてのエラーを解除する」は、最も信頼性の高い方法のようです。
IEについて何か良いことをする必要はめったにありませんが、この場合はうまくいきます。 VSでのJavaScriptのデバッグは機能します。問題なくブレークポイント(「デバッガ」)にヒットし、ページ上の他のすべてのJavaScriptコードの実行を停止します。そのため、私はバックアップとしてかなり頻繁に使用しています。
Firebugは、[スクリプト]タブのコードを緑の行番号で表示しますか?これは、デバッグ可能なコード行を示します。
私はこの症状を経験しましたが、どの行番号も時々緑色になりませんでした。私はページを更新すると、魔法のように、再び緑色になります。
Firebugの[コンソール]タブに、他のJavaScriptのエラーが表示されますか?デバッグブレークポイントの前のコードにJavaScriptエラーが存在する場合、前の壊れたものが修正されるまで、そのコード行に到達することはありません。
私も断続的にこの問題を抱えていました。ブレークポイントのドロップダウンから「すべてのブレークポイントを無効にする」と「すべてのブレークポイントを有効にする」を選択すると、機能し始めました。
私はこれに1時間を費やしました。
私は次のような<script>
タグを持っていました:
<!-- jQuery Validate -->
<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.10.0/jquery.validate.min.js" type="text/javascript">
問題を見つけることができますか?
さて、それを見つけるのにずっと時間がかかりました。 /
タグを閉じるための<script>
がありません。
<!-- jQuery Validate -->
<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.10.0/jquery.validate.min.js" type="text/javascript" />
これは確かに、コピー/貼り付けを行ってからコードを変更しようとしたためです...この場合、私はばかを演じました! :)
/
を追加した後、Firebugでブレークポイントを機能させることができました。それは理にかなっている。
最後に、私はそれらの祝福された緑の数字を見ることができます。
言及されたものに別の可能性を追加するだけです。
これは、当然のことながら、本番環境で何かを修正するようにプレッシャーを受けていたときに発生しました。
誤って構文エラーを導入しました:
function: myFunc(){}
// function body
}
そのように。コンソールログの先頭にエラーがありましたが、気が付きませんでした。私はそのファイルをデバッグしようとし続けましたが、Firebugはそれに踏み込みませんでした。
したがって、これが発生している場合は、コンソールを確認してください。ファイルのロードを短絡する構文エラーがある可能性があります。
FF 36とFB 2.0.8で同じ問題:コンソールにエラーはなく、コードは正常に動作しますが、FBはJSではなくHTMLを表示し、debugger
ブレークポイントで停止しますが、ランダムなHTML行で表示します通常のブレークポイントで停止します。
ページからJSを抽出し、それを独自のJSファイルに移動することで解決しました。
しかし、落とし穴がありました。スクリプトが独自のJSファイルにある場合、「グローバル」変数をFFで機能させることができませんでした(コードがどこにあるかに関係なく、IE)で正常に機能しました) 、window.varName
構文を使用していても、別のファイルからFBでデバッグすることになりましたが、本番用にインラインに戻りました。
私にとっては、すべてのdocument.write()
呼び出しを削除した後に機能しました。
私もこの問題を抱えていました。おそらくKIT-Inwiの答えに関連しています...しかし、ページが読み込まれるたびにPHPを使用してランダムな行を生成していました。
FirebugはHTMLページ全体の行番号ブレークポイントを配置することを覚えているようです。必ずしもJavascriptの行ではありません。つまり、このページの読み込み時にブレークポイントを配置した行番号は次回ロードするときは必ずしも同じコード行である必要があるため、ブレークポイントは「ジャンプ」しているように見えます。
毎回変化する動的コンテンツでどのように解決するかはわかりませんが、ランダムな行を削除して修正し、ブレークポイントのある行がすべてのページの読み込みで同じになるようにしました。