当我尝试在IE中使用documnet.write插入iframe时,我获得了成功。但是,之后的任何html代码都没有执行。
document.write("<div>Hello</div><iframe ..../><div>Bye Bye</div>");
此处“Bye Bye”字符串未执行。
如需即时检查,您可以输入浏览器网址
javascript:document.write("<div>Hello</div><iframe ..../><div>Bye Bye</div>");
经过反复试验,我发现如果我按照以下方式关闭iframe标记,就可以了。
<iframe ...></iframe> instead of <iframe ... />
现在,问题是“我没有机会将<iframe ../>
更改为<iframe .. ></iframe>
”。寻找你的好意见。
答案 0 :(得分:2)
如果允许在将字符串发送到document.write
之前更改字符串,那么您可以自己修改标记:
markup = "<div>Hello</div><iframe ..../><div>Bye Bye</div>"
markup = markup.replace(/<iframe([^>]*?)\/>/g, '<iframe$1></iframe>')
document.write(markup);
答案 1 :(得分:1)
如果您没有机会更改字符串(即您无法事先阅读)和代码的document.write
部分,我认为您至少有权编辑/插入一些代码在文档中(否则你不应该有这个问题,因为你根本就什么都不做)。
这样,尝试通过在事情发生之前插入一些代码来调整document.write()
方法:
document.write=function(str){
str=str.replace(/<iframe([^>]*?)\/>/ig,'<iframe$1></iframe>');
return document.writeln(str);
}