私の最近の質問から、動的ビューの部分ビュー用のJavaScript関数をすでに作成しました。そのため、動的読み込みJavaScriptをデバッグできません。ロードされたすべてのJavaScriptは「eval」関数によって評価されるためです。
ただし、次のスクリプトを使用してスクリプトを動的に作成し、現在のドキュメントのヘッダーに新しいJavaScriptを作成する方法を見つけました。ロードされたすべてのスクリプトはHTML DOMで表示されます(任意のデバッガーを使用して検索できます)。
var script = document.createElement('script')
script.setAttribute("type","text/javascript")
script.text = "alert('Test!');";
document.getElementsByTagName('head')[0].appendChild(script);
ちなみに、ほとんどのデバッガー(IE8 Developer Toolbar、Firebug、Google Chrome)は、動的スクリプトにブレークポイントを設定できません。デバッグ可能なスクリプトは、ページが読み込まれた後、最初に読み込まれる必要があるためです。
動的スクリプトのコンテンツまたはファイルでデバッグするアイデアはありますか?
アップデート1-テスト用のソースコードを追加
someVariable値をデバッグするには、次のxhtmlファイルを使用できます。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Dynamic Loading Script Testing</title>
<script type="text/javascript">
function page_load()
{
var script = document.createElement('script')
script.setAttribute("id", "dynamicLoadingScript");
script.setAttribute("type","text/javascript");
script.text = "var someVariable = 0;\n" +
"someVariable = window.outerWidth;\n" +
"alert(someVariable);";
document.getElementsByTagName('head')[0].appendChild(script);
}
</script>
</head>
<body onload="page_load();">
</body>
</html>
答えから、FireBugでテストするだけです。結果は以下の画像のように表示されます。
ページ読み込み後に追加される「dynamicLoadingScript」スクリプトをご覧ください。
ただし、FireBugのスクリプトタブにはありません。
更新2-動的読み込みスクリプトでデバッグブレークポイントを作成する
上記の両方の画像は、「デバッガ」の挿入を示しています。スクリプトの一部の行のステートメントは、動的ロードスクリプトでブレークポイントを起動できます。ただし、どちらのデバッガーもブレークポイントにコードを表示しません。したがって、これを行うのは無意味です。
おかげで、