[英]Running javascript in iframe
如何将脚本添加到iframe
?
我写了一些东西:
doc = $frame[0].contentDocument || $frame[0].contentWindow.document;
$body = $("body", doc);
$head = $("head", doc);
$js = $("<script type='text/javascript' />");
$js[0].type = "text/javascript";
$head.append($js);
这是我的功能正在正常工作textarea keyup事件。
function addJS() {
js = js_textarea.val();
$js.html(js);
}
但是,这不起作用,代码是否已添加到脚本标签,但未运行浏览器? 我怎么解决这个问题。 (我已经尝试过eval()
)
编辑,这些是我的代码:
$frame = $('<iframe id="frame">');
$("#preview").html($frame);
doc = $frame[0].contentDocument || $frame[0].contentWindow.document;
$body = $("body", doc);
$head = $("head", doc);
$js = $("<script type='text/javascript' />");
$js[0].type = "text/javascript";
$head.append($js);
htmlEditor.on("change", function() {
addJS();
});
function addJS() {
js = $("#js_textarea").val();
$js.html(js);
}
这是行不通的。 脚本是不可变的。 在将脚本附加到DOM时,将解析并评估脚本的“ HTML”。 之后,您甚至可以删除脚本标签,脚本本身仍将起作用。 因此,更改脚本文本也不会导致新脚本被解析和执行。
您可以在script
标记中添加一些内容,然后再将其附加到DOM。 您可以通过在添加$js
之前$js
下行插入代码中来进行测试。
$js.html('alert("foo");');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.