0

document.writeが含まれているJSのスニペットを取得する必要があります。これにより、document.writeがレンダリングされるとページが空白になります。document.writeを再定義し、スクリプトの応答をgetScript()jQuery関数からの応答を出力するために使用する関数に渡すことで、これを回避することができました。ただし、ページの後半で読み込まれる他の要素やスクリプトに問題があり、再定義するとページに出力できなくなります。jQuery getScript()が完了した後、document.writeをデフォルトの機能に戻すにはどうすればよいですか?

$.getScript('somescript.com/script/', function(){
  //Prevent document.write normal behavior
  document.write = function(markup) {
  fullMarkup += markup;
  appendResponse(markup);
  }
 }  
});
4

3 に答える 3

2

置換を使用した後、元の参照をいくつかの変数に保存して document.write復元するだけです。

window.backupWrite = document.write;

スクリプトのロード(および実行)が成功した後

document.write = window.backupWrite;
于 2012-05-25T13:28:44.463 に答える
1

すべてがロードされた後に実行するdocument.writeと、ページが空白になります。

スクリプトを取得して実行することだけが目的である場合は、$.getScript()すでにそれを実行しています。

$.getScript('somescript.com/script/');
于 2012-05-25T13:29:06.633 に答える
0

document.writeいくつかの大きなブラウザでドキュメントがレンダリングされた後に実行された場合、DOMを完全にクリアします。つまり、使用しないでください。外部スクリプトに選択肢がない場合、それは残念です。さまざまなjQuery.appendメソッドを使用して、コンテンツを文字列形式で追加できます。

于 2012-05-25T13:30:34.917 に答える