我有这样的东西:
<!doctype html>
<html>
<body>
<iframe id="someFrame"></iframe>
</body>
</html>
我想使用jQuery来编写元素,这样完整的等效HTML就像这样:
<!doctype html>
<html>
<body>
<iframe id="someFrame">
<!-- inside the iframe's content -->
<!-- <html><body> -->
<div>A</div>
<div>B</div>
<div>C</div>
<!-- </body></html> -->
</iframe>
</body>
</html>
或者,任何普通的JavaScript都可以。
谢谢。
编辑:经过一点研究,我似乎正在寻找一个IE等价的iframe的contentDocument属性。“contentDocument”是FF支持的W3C标准,但IE不支持。(惊喜惊喜)
5条答案
按热度按时间falq053o1#
你可以两者兼得,只不过目标不同而已:
8aqjt8rx2#
经过一些研究,以及Mike的证实答案,我发现这是一个解决方案:
3pmvbmvn3#
HTMLIFrameElement:srcdoc属性
HTMLIFrameElement
的srcdoc
属性指定页面的内容。mbjcgjjk4#
我在这里大胆地说,到目前为止提出的答案是不可能的。
如果这个iframe实际上有一个src=“somepage.html”(你应该已经指出了,如果没有,使用iframe有什么意义呢?),那么我认为Jquery不能在所有浏览器中直接跨框架操作html。根据我对这种事情的经验,包含页面不能直接从iframe页面调用函数或与iframe页面进行任何类型的Javascript接触。
您的“somepage.html”(加载到iframe中的页面)需要做两件事:
1.向包含页面传递某种可用作桥梁的对象
1.有一个函数来设置你想要的HTML
例如,somepage.html可能看起来像这样:
包含的页面可能看起来像这样:
这可能看起来有点复杂,但它可以在许多方向上进行调整,至少应该在IE,FF,Chrome,可能还有Safari和Opera中工作。
jhkqcmku5#
我发现这是跨浏览器兼容的......以前的答案和我自己的一些尝试和错误。:)
我用它来下载一个报告,或者,如果发生错误(消息),它会显示在iFrame中。大多数用户可能会隐藏iFrame,我用它的多功能。
问题是每次我点击报告下载按钮时,我都必须清除iFrame的内容-用户可以更改参数,但没有结果,然后在iFrame中显示为消息。如果有 are 结果,iFrame仍然是空的-因为下面的代码已经清除了它,
window.open(...)
方法生成了Content-Disposition: attachment;filename=...
文档。我没有支持
contentDocument
的浏览器,但我已经这样编码了,所以我离开了它。也许有人有旧的浏览器,可以发布兼容性确认/问题?