-1

XHRresponseTextの HTML コンテンツを表示DIVし、その<script>タグを削除してタグに追加するにはどうすればよいheadですか? (Google クロージャーを使用)

Prototype JSのextractScriptsのようなもの。

4

1 に答える 1

0

responseText が HTML および script タグを含む Web ページ全体である場合は、それを iFrame および iFrame src にアタッチし、ブラウザーにすべてを管理させる必要があります。ウェブページのさまざまな部分。

本当に responseText を取得して、それを自分のドキュメントの div に直接配置したい場合は、いくつかのオプションがあります。

まず、応答がスクリプト タグが埋め込まれた単なる HTML フラグメントである場合 (Web ページ全体ではない)、応答全体を JS 変数に読み込んでから、DIV の .innerHTML 属性に割り当てることができます。ブラウザーは、埋め込まれたタグを含む HTML を解析し、元はその div の一部であったかのように評価します (ただし、スクリプトの実行タイミングは、.innerHTML.

例として:

var myDiv = document.getElementById("myDiv");
myDiv.innerHTML = responseText;

次に、何らかの理由でタグを個別に取り出したい場合 (最初のオプションと比べてそのような理由は考えられません)、responseText からスクリプトの開始タグと終了タグを自分で解析する必要があります。それらの間にJSコードテキストをJS変数に入れ、その変数でevalを使用してそれを実行し、ドキュメントの一部にします。次に、上記の例のように、残りの HTML を div の innerHTML 属性に割り当てます。

そのスクリプトに document.write が含まれている場合、この 2 番目の方法では機能しません。これは、document.write のロケーション コンテキストがないためです。それらのスクリプト タグが onload などのページ読み込みメソッドに依存している場合、スクリプトもそれらのイベントを認識しません (iFrame.

于 2011-06-30T08:42:33.117 に答える