由于 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/。
所以有几点:
我将整个内容作为一个字符串传递。您必须预先添加data:text/html;charset=utf-8,
,然后您可以将您的字符串设置为 iframe 的 src。
我正在添加带有绝对路径的 jquery.js 文件- 这似乎很重要,大概是因为框架本身没有路径,因为它的内容是动态生成的。
我像这样拆分脚本结束标记,<" + "/script>
因为至少 firefox 尝试在此时结束实际脚本。更简洁的方法可能是将 js 作为完全独立的文件。