我必须在我的网页div中包含一个网页。我想用iframe
这样的东西来完成DIV
。基本上,我将为我的div提供一个URL,并且必须在其内部打开它...在现代HTML中,我们是否有这样的东西?我无法使用框架,因为某些浏览器对框架有问题。在div中包含一个网页
回答
没有。您不能在另一个div元素中嵌入完整的HTML文档,因为这是一个块级元素,并且W3C已经定义了其中可能包含的内容。
但有一个解决方法。请按照下列步骤:
- 获取使用文件AJAX(jQuery的岩石,请使用)
- 提取
<body>
元素的内容并把它你div
元素中 - 获取
<head>
元素的所有链接和脚本并将它们追加到现有pgae的<head>
元素中。
你应该使用iframe。这基本上是iframes的用途。如果你坚持使用现代浏览器,无论如何他们不会有iframe问题(不会超过你将不得不面对的使用div的代替)...
您可以使用iframe或如果你决定使用jQuery负荷函数(http://api.jquery.com/load/),你需要避免交叉脚本编写脚本的问题 - 你需要创建某种proxie的看看这个:WebBrowser Control: Disable Cross Site XSS Filtering or another way to process JS in full on HTML
本应该是问题本身,但是OP澄清了他不想使用iframe
的原因是因为不允许帧间通信。那么,这不是代理+ postMessage无法解决。
我相信根本没有办法实际将完整的文档嵌入到另一个文档中,保留诸如样式和脚本等的分离之类的东西,而不用某种意义上的框架。
这实际上是赛义德回应的延伸。为了解决跨站点脚本问题,您必须在自己的服务器上编写一个脚本,该脚本执行CURL调用来嵌入网页。然后,您的JavaScript将调用此脚本,并将该URL作为GET/POST参数传递。
我同意很多其他人在这里,这是一个情况下,你真的应该只使用一个iframe ...我相信你可以设置没有src标记的iframe,并手动将其中的内容。这意味着你不需要采取赛义德建议分解头部和身体的步骤。但是,您仍然需要我描述的脚本来解决跨站脚本问题。
尝试使用<object>
元素:
<div style="margin: 0 auto; width:100%; height:400px;">
<object type="text/html" data="**URL to page**"
style="width:100%; height:100%; margin:1%;">
</object>
</div>
它兼容哪些浏览器/版本? – checksum
- 1. 在Lotus网页中包含一个JSP
- 2. 如何在另一个div上包含包含文本的div?
- 3. 在使用JQuery的DIV中包含一个php页面
- 4. 用另一个div替换包含数据网格的div
- 5. 在html页面中包含一个gif
- 6. 点击div并转到另一个div包含的页面
- 7. 将网页的index.php包含在另一个目录中。
- 8. 使包含表格的一个div分为两个div,其中包含表格
- 9. 我如何使一个div包含在一个flex div内
- 10. 在一个内容div上浮动一个包含三个div的div div
- 11. 具有动态的(如更改/更新,例如,博客页面)包含在一个div中的div包含在同一个div中
- 12. 如何包含我在另一个DIV中创建的DIV?
- 13. 在网页中包含动态图像
- 14. 包含在DIV
- 15. 包含在DIV
- 16. 在网页中包含php文件包含功能
- 17. 让页面在整个页面溢出其包含的div
- 18. WordPresspress:在另一个页面中包含一页的内容
- 19. 如何在一个div中包含每个三个列表?
- 20. 包含外部网页的一部分
- 21. 在多个HTML页面中包含相同的DIV
- 22. 将多个包含JavaScript的HTML页面包含到一个PHP页面中
- 23. JavaScript在网页上拖/放一个Div
- 24. 放大一个div当它在网页
- 25. 如何测试一个div包含另一个DIV
- 26. Python/Django - 在一个div中包含一定数量的项目
- 27. 的Javascript:检查是否页面包含一个特定的div
- 28. 如何包含另一个页面的div?
- 29. 将一个div放在两个图像的内部,其中一个div包含一个div
- 30. 如何在另一个页面中包含一个刮表
我怀疑,你必须使用'iframe'少的问题比你会通过重新'用'div' iframe'功能。您使用'iframes'(或'frame's)时遇到哪些浏览器有问题? –
找不到任何投票下来,这只是一个简单的问题,因为Chrome浏览器不允许帧间通信 – Varun
Chrome允许帧间通信。没有CORS,它不允许域间通信,但这是根据规范。 – Quentin