1

コードを個々のファイルに分割する手法を試しています (さまざまな部分が多数含まれているページが、1 つの巨大な HTML ページではなく複数のファイルになるようにするため)、ajax を使用してそれらをロードし、一部の親divへのinnerHTMLとしてのコンテンツ。これにより、非常にクリーンなコードが作成され、最近のすべてのブラウザーで適切に動作するように見えますが、外部ページにタグが含まれている場合、<script>そのタグに含まれる JavaScript が無視される (解析されず、親ページの JavaScript コンテキストに読み込まれない) ことに気付きました。これらの外部スニペットに存在するメソッドと変数は単に欠落しています。

スクリプトタグの内容を読み込んでから全体を読み込んだところ、うまくいきましたeval()...しかし、これらの外部ファイルにスクリプトを含めるためのよりネイティブなメカニズムを見落としていないかどうか興味があります.または、このアプローチが本当に私の目標を達成する唯一の方法である場合。

ティア

4

1 に答える 1

2

これは の仕事ではありませんinnerHTML。おそらく、外部ファイルを DOM オブジェクト (名前の由来XMLHTTPRequest) としてロードして、scriptタグが追加される前に適切なオブジェクトに変換されるようにする必要があります。

jQuery を使用した Firefox での簡単な実験 (このページでは、へー) は、innerHTML実行されないスクリプト要素を追加することを示していますが、これは実行されます。

$( 'body' ).append( $('<script>console.log( "hello, world!" );</script>' ) );
于 2012-12-30T08:09:17.507 に答える