2012-02-16 15 views
1

jQueryがスクリプト要素を自動的に解析して頭に追加することは知っていますが、選択肢はあまりありません。私は、指定されたdivにHTML文字列を正確に挿入する必要があります。例えば<script src='http://.....'></script><div id="lb"></div>に変換します。jQuery divへのスクリプトを追加する

問題は、私が制御できないサーバーからスクリプトがロードされ、document.write()スクリプトを使用していることです。ヘッダーに追加されると、重大な問題が発生します。 jQueryの有無にかかわらずこれをどうすればできますか?

+1

スクリプトに 'document.write'が含まれていると、どこに挿入しても問題は発生します。それは文書全体を置き換えます。 –

+0

@FelixKlingドキュメント全体を置き換えることはできません...ドキュメントの最後にスクリプトを挿入します。 –

+1

@Willem:たぶん、違うことを話しているのかもしれない。私は、スクリプトタグが動的に生成される、または読み込まれた後*読み込まれたという前提の下にいました。その場合、 'document.write'は現在の文書を消去します。ページが完全に解析されていない場合、 'document.write'は単に呼び出された場所に内容を挿入します。しかし、おそらく私はこの質問にあまりにも多くを読んでいます。 –

答えて

1

あなたの質問を言い換えると、

あなたのページには< script >タグを挿入します。これらのタグは、document.write()を持つjavascriptファイルを読み込みます。

これで、document.write()がヘッダーではなく一部のdivで発生します。

私はあなたが最初からページのソースにこれらのスクリプトタグを直接レンダリングする必要があると思います。 Felixは、後でこのスクリプトタグをロードすると、ページ全体がdocument.write()関数によって出力されるものに置き換えられることを正しく認識しています。

したがって、javascriptまたはJQuery では、にこれらのスクリプトタグをロードできません。ページの最初のバージョンでサーバー側をレンダリングする必要があります。

-1

Document.write()は、スクリプトをドキュメントの最後に置く(afaik)。次に、これらのスクリプトタグを検索し、適切なDIV($(elm).append(scriptObj)を使用して)に入れる必要があります。

しかし、私はあなたの問題が何であるかを理解していない可能性があります...

+1

ページが完全に解析されなかったそれでも、 'document.write'は、呼び出された場所(または後)にコンテンツを挿入します。ページがすでに解析されている場合は、ページ全体が置き換えられます。詳細はこちら:https://developer.mozilla.org/en/document.write –

+0

うーん、私はそれを知らなかった、ありがとう! :) –

1

あなたのスクリプトは、あなたのページの内容を変更したくない場合は、代わりにdiv要素のiframe内に挿入だろうか? documentはiframeを参照する必要があります。私はあなたが望むものを正確に得ることはできません。

関連する問題