iframe は独自のものとして実行されるためwindow
、jquery.js ファイルのインポートも挿入する必要があります。
<script type="text/javascript" src="/jquery/jquery-ui-1.9.1.custom.js"></script>
編集:だから私はこれでもう少し遊んで、ここに私が思いついたものがあります.
HTML
<iframe id="frame"></iframe>
JS
$("#frame").attr(
"src", "data:text/html;charset=utf-8," +
"<html>" +
"<style>.red {color: red}</style>" +
"<div class=\"test\">Test</test>" +
"<script src=\"http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js\"><" + "/script>" +
"<script>$(function(){ $(\".test\").addClass(\"red\")});<" + "/script>" +
"</html>"
);
これは機能します。こちらhttp://jsfiddle.net/WsCxj/を参照してください。
したがって、いくつかのポイントがあります。
コンテンツ全体を 1 つの文字列として渡します。先頭に追加するdata:text/html;charset=utf-8,
必要があり、文字列を iframe の src として設定できます。
絶対パスを使用して jquery.js ファイルを追加しています。おそらく、フレームのコンテンツが動的に生成されるため、フレーム自体にパスがないため、これは重要なようです。
<" + "/script>
少なくとも Firefox はこの時点で実際のスクリプトを終了しようとするため、このようにスクリプト終了タグを分割します。よりクリーンなアプローチは、おそらく js を完全に別のファイルにすることです。