1

フィードを表示するfeedburnerスクリプトがあります。次のようになります。

<script src="http://feeds.feedburner.com/cnn/HIkg?format=sigpro" type="text/javascript" ></script>

別のhtmlページにあるこのスクリプトをロードしたいので、基本的には、次を使用してこのスクリプトを含むhtmlファイルをロードしています。

$('#' + items[i]).load('content/' + items[i] + '.html');

このコードはhtmlページをロードしますが、スクリプトは実行されません(動作しません)。ロードされたスクリプトを機能させるにはどうすればよいですか?

4

2 に答える 2

2

ドキュメントによると:

スクリプトの実行
サフィックスのセレクター式のない URL を使用して .load() を呼び出すと、スクリプトが削除される前にコンテンツが .html() に渡されます。これにより、スクリプト ブロックが破棄される前に実行されます。ただし、セレクター式を URL に追加して .load() を呼び出すと、DOM が更新される前にスクリプトが削除されるため、スクリプトは実行されません。

URL がセレクターが指定されていない単純な URL である場合、スクリプトは削除される前に実行する必要があります。

の値をitems[i]確認し、セレクターのないプレーンな URL かどうかを確認します。

URL に問題がないように見える場合は、クロスサイド スクリプティングの問題が発生している可能性があります。ドキュメントには次のことも記載されています。

ブラウザーのセキュリティ制限により、ほとんどの "Ajax" リクエストは同一オリジン ポリシーの対象となります。要求は、別のドメイン、サブドメイン、またはプロトコルからデータを正常に取得できません。

可能であれば、スクリプトを外部ファイルに入れることをお勧めします。これは良い習慣であり、html が乱雑にならないようにするためです。その後、ラミンソン.getScript()の推奨に従って使用できます。

于 2012-08-11T07:57:05.903 に答える
1

$.getScript()ユーティリティ機能を使用できます。

GET HTTPリクエストを使用してサーバーからJavaScriptファイルをロードし、それを実行します。

$.getScript("/test.js")
于 2012-08-11T07:41:37.023 に答える