Javascript iframe之后的任何HTML代码都不会使用document.write执行

Javascript iframe之后的任何HTML代码都不会使用document.write执行,javascript,browser,iframe,document.write,Javascript,Browser,Iframe,Document.write,当我尝试在IE中使用documnet.write插入iframe时,我获得了成功。但是,之后的任何html代码都不会执行 document.write("<div>Hello</div><iframe ..../><div>Bye Bye</div>"); document.write(“你好,再见”); 这里不执行“Bye-Bye”字符串 document.write("<div>Hello</div>&l

当我尝试在IE中使用documnet.write插入iframe时,我获得了成功。但是,之后的任何html代码都不会执行

document.write("<div>Hello</div><iframe ..../><div>Bye Bye</div>");
document.write(“你好,再见”);
这里不执行“Bye-Bye”字符串

document.write("<div>Hello</div><iframe ..../><div>Bye Bye</div>");
要进行即时检查,您可以键入浏览器url

javascript:document.write("<div>Hello</div><iframe ..../><div>Bye Bye</div>");
javascript:document.write(“hellobyebye”);
在进行了反复试验之后,我发现如果我按照以下方式关闭iframe标记,它就会工作

<iframe ...></iframe> instead of <iframe  ...  />
而不是

现在,问题是“我没有任何机会将
更改为
”。正在寻求您的建议。

如果允许您在将字符串发送到
文档之前更改字符串。编写
,则您可以自己修改标记,如下所示:

markup = "<div>Hello</div><iframe ..../><div>Bye Bye</div>"
markup = markup.replace(/<iframe([^>]*?)\/>/g, '<iframe$1></iframe>')
document.write(markup);
markup=“你好,再见”
markup=markup.replace(/]*?)\/>/g',)
文件。编写(标记);

如果您没有任何机会更改字符串(即,您无法事先阅读它)和
文档。请编写部分代码,我假设您至少有权在文档中编辑/插入一些代码(或者您不应该有这个问题,因为您实际上什么也做不了)

这样,在事情发生之前,通过插入一些代码,尝试调整
document.write()
方法:

document.write=function(str){
    str=str.replace(/<iframe([^>]*?)\/>/ig,'<iframe$1></iframe>');
    return document.writeln(str);
}
document.write=函数(str){
str=str.replace(/]*?)\/>/ig',);
返回文件。书面形式(str);
}

@Pekka aww,这可能无法解决。你完全没有办法改变这个字符串?我认为XHTML文档中的
标记也存在类似的问题,例如,我记得讨论的内容,但我现在找不到。这是一个多么好的问题!!你刚刚解决了我的标签问题。谢谢。这是他说他做不到的,但这可能是唯一的方法,因此对于代码示例+1,我的印象是包含
的字符串的生成不在他的控制之下,但是通过
文档将其插入DOM中。write
可能是。@Brian虽然我说过我没有机会更改代码,但我发现您的代码非常有用。很高兴它很有用。很抱歉,这并没有真正解决你的问题!