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

时间:2012-09-23 16:08:16

标签: javascript html html5 iframe innerhtml

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

问题在于更复杂的案例。那么哪个更好,(1)在我的“模态”窗口中有一个<iframe>或者(2)一个<div>加上一些Ajax代码,它们检索我的表单内容并将其注入div的innerHTML ?

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

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

1 个答案:

答案 0 :(得分:6)

如果您确实需要iframe,则应该只使用iframe。使用iframe的原因是:

  1. 从其他域加载内容的最简单方法。
  2. 隔离来自单独域的内容的安全上下文。
  3. 在您的网页中嵌入一个完全独立的网页(独立脚本,独立样式表等)。
  4. 您不想编写ajax代码来动态加载内容,并且只想使用iframe的内置.src功能。
  5. 如果您不需要iframe的任何这些功能,那么通常更容易使用div(它将自动调整其内容大小 - 而iframe不会)并将所需内容放入该div中

    要么可以工作。