2012-10-30 9 views
22

javascriptを含むhtmlのスニペットをAJAX経由で動的に読み込むと、Chrome 22.0.1229.94のデベロッパーツールウィンドウのソースタブにコンテンツが表示されません。 Tellingly、私はここでChromeデベロッパーツールで動的に読み込まれたコードが表示されない22

https://developers.google.com/chrome-developer-tools/docs/scripts-breakpoints#js_dynamic

をこのページが古くなっている例開発ツールウィンドウを示しました。ページに動的スクリプトを読み込むためのボタンがあり、そのときにソースタブに表示されません。

回避策は、私はスクリプトに

debugger; 

を追加し、それが動的にロードされたコードで一時停止する原因となりますリロードすることを見出したが、残念ながら、すべての行番号がグレーアウトされていたようとデバッガ内にブレークポイントを設定することはできません。

ここに何か不足していますか?

おかげで、 ロブ

+0

[WebKit、FireBug、IE8 Developer Toolなどのデバッガで動的ロードJavaScriptをデバッグすることはできますか?](http://stackoverflow.com/questions/1705952/is-possible-to-debug-dynamic- loading-javascript-by-some-debugger-like-webkit-fi) – JerryGoyal

答えて

5

あなたは@ sourceURLに//使用することができます。 Chromeはインラインスクリプトの// @ sourceURLをサポートしていないようです。しかし、それは評価式で動作します。 This articleには、evalブロックの命名とコード内の任意の匿名関数の命名についての詳細が記載されています。

evalを使用する代わりに、スクリプトタグを埋め込むか、JSONPを試すことができます。

Varunkumar Nagarajan

23

ライブラリまたはあなたがそれを動的にロードしたJavaScriptコードを使用すると、あなたのjavascriptのコードの先頭に句

//@ sourceURL=foo.js 

を使用することができるfoo.jsはそれに割り当てられる名前です。デバッガはその名前でそれを表示します。 これはクロムにも当てはまり、ファイヤーバグでもそうだと思います。 この場合、動的にロードされるjavascriptコードにブレークポイントを配置できます。

+0

残念ながら私は同じ問題を抱えています。しかし、これらのファイルをYahoo CDNからロードしています(モジュール依存です)。 Firebug(1.12.0)のFirefox(23.0.1)では、これらのファイルは[スクリプト]タブに表示されます。 Chrome(29.0.1547.62 m)では、[リソースとネットワーク]タブでのみアクセスできます。私はそこにブレークポイントを設定する必要がありますし、私はできません... – op1ekun

+0

私はあなたがこの目的のために実装されているライブラリを使用して読み込むことを提案します。たとえば、require.jsを使用します。または、require.jsで使用されているメソッドのようなメソッドでロードすることもできます。 –

+0

YUI(これは私が使用しています)はモジュールをロードする独自の方法を持っています。これはrequire.jsに似ています。最後に、動的に作成されたタグの最後の前に// sourceURL = foo.jsを置くと作業が終了しました。 –

関連する問題