iframe vs innerHTML用于模态对话 - 哪个更好?

moj*_*uba 1 html javascript iframe html5 innerhtml

我在我的HTML5页面上模拟一个模态窗口功能,通过创建一个div position: fixed,在浏览器窗口中居中等.在某些情况下,我的模态窗口只显示带有一个或多个按钮的消息,例如OK Cancel,但在其他情况下我是显示更复杂的表单,例如即时消息对话框.

问题是更复杂的情况.那么哪个更好,(1)<iframe>在我的"模态"窗口中有一个或者(2)<div>加上一些Ajax代码来检索我的表单的内容并将其注入到div的innerHTML中?

在这两种情况下有哪些警告?当你选择一个而不是另一个时,你的理由是什么?

浏览器要求:IE9 +和其他理智的浏览器.

jfr*_*d00 6

iframe如果你真的需要,你应该只使用iframe.使用iframe的原因是:

  1. 从另一个域加载内容的最简单方法.
  2. 从单独的域中隔离内容的安全上下文.
  3. 在您的网页中嵌入一个完全独立的网页(独立脚本,独立样式表等).
  4. 您不想编写ajax代码来动态加载内容,并且只想使用.srciframe 的内置功能.

如果您不需要iframe的任何这些功能,那么通常更容易使用div(它将自动调整其内容大小 - 而iframe不会)并将所需内容放入该div中.

要么可以工作.