0

親から新しいウィンドウに書き込まれたコードをデバッグする方法はありますか?

私はinnerHTML、textContent、document.write、および子の追加を試しました。しかし、それらのどれもchrome/ffのソースコンソールに表示されません。関連するファイルはすべて機能しますが、ソース自体は機能しません。

たぶん、ソケットや他のAPIでこれを行う方法があります...

これは、doc.write()または他のアプローチのいずれかを実行した後のように見えますが、非常にむき出しです:/

ここに画像の説明を入力してください

*注:そのようなファイルへの参照を含めると、<script src="jquery.js"></script>それをデバッグすることはできますが、ルートhtmlページ自体に埋め込まれたスクリプトはできません。

私の最後のアプローチは、すべてのスクリプトをファイルに入れて、ウィンドウからそれらにリンクすることですが、可能であれば、ウィンドウスクリプト自体もデバッグできると便利です。私のソリューションは動的であり、jsのファイルよりも新しいウィンドウを作成する方が簡単です。

4

1 に答える 1

1

私はinnerHTML、textContent、document.write、および子の追加を試しました。しかし、それらのどれもchrome/ffのソースコンソールに表示されません。関連するファイルはすべて機能しますが、ソース自体は機能しません。

そうあるべきです。これらのメソッドはいずれもファイルのソースを生成/変更せず、index.html意図的に空になっています。-URIを使用する場合はdata:、そのソースを調べることができると思います。

上記のすべてのメソッドは実際にDOMを変更するため、DOMインスペクター(Elementsdevtoolsのタブ)で結果を確認できます。または、の場合document.write、ソースとは異なるストリームから作成されたDOMにつながるパーサーをインターセプトします。

document.write平文で書かれたものを検査するために、それらをロガー関数でラップすることができます:

(function (d) {
     var w = d.write,
         wl = d.writeln;
     d.write = function() {
         this.source = (this.source || "") + [].join.call(arguments);
         w.apply(this, arguments);
     };
     d.writeln = function() {
         this.source = (this.source || "") + [].join.call(arguments) + "\n";
         w.apply(this, arguments);
     };
})(theDocumentYoureWritingTo);

// after you're done, you can
console.log(theDocumentYouWroteTo.source);
于 2013-03-26T12:37:51.017 に答える