代码之家  ›  专栏  ›  技术社区  ›  Moses

我什么时候应该使用HTML框架?

  •  20
  • Moses  · 技术社区  · 15 年前

    我听过无数的理由来解释为什么不使用HTML框架,因为它们缺乏可访问性,普遍缺乏用户体验,它们完全没有效率/无法维护,或者它们只是过时了。

    这一切给我带来了两个问题:

    1. 这种普遍的仇恨共识也适用于iframes吗?
    2. 在什么情况下,可以在代码中使用frames/iframes?
    4 回复  |  直到 7 年前
        1
  •  13
  •   bobince    15 年前

    (1)不是固有的。iframe有许多不受框架问题影响的用例。它们在任何时候都是有用的,无论您想要混合来自另一个安全上下文的文档,或者没有父页面正在使用的脚本和样式。

    然而,它 _使用帧__那样的iframe:将页面拆分为单独的iframe区域,跨帧链接会造成导航混乱,无法很好地处理书签、在新选项卡中打开等。

    (2)我今天什么都不使用相框。对于他们来说,保存大量页面内容的用例是有限的,您不希望在每次导航时重新加载这些内容。但现在我们只会用 XMLHttpRequest 更新页面的一部分。

    即使如此,也不必担心使页面更改链接可访问(使用哈希历史记录并对每个哈希链接进行静态链接模拟,用real链接 <a> 对middle click等的响应),一个使用 对象 将重现许多框架的导航问题,具有强烈的负面可用性、可访问性和SEO含义。

    我觉得有点遗憾的是,许多作者正在创建浮华、浮华、时髦的动画网站,这些网站是由na_ly使用jquery的 load() 或者类似的,展示所有古老的,令人讨厌的框架的最坏的行为。

        2
  •  4
  •   Community CDub    12 年前

    (1)没有。iframes是合法使用的,现在没有理由在现代浏览器中使用框架。

    (2)不要使用框架;还有其他更好更简单的解决方案可以产生同样的效果。

    仅当嵌入整个站点是最合理的选项时才使用iframes。虽然很少见,但有时这是有道理的。

    简而言之,frame/frameset/noframe标签被从HTML5中删除是有原因的,但是iframe将继续执行。

    (示例)如果站点A必须包含来自站点B的页面(代理似乎来自站点A),那么站点B的CSS和JavaScript可以并且通常会完全覆盖站点A。这是一个合理的原因。

        3
  •  1
  •   Zelid    13 年前

    如果出于某种原因,您有“嵌套表单”。

    假设您有一个产品编辑表单,并且在该表单中,您有一个区域具有另一个表单,也就是说,允许您输入一个客户列表,以便为此产品发送新闻稿。

    客户与产品完全不相关,并且与产品没有数据库关系。它们是从产品中合规地分离出来的实体。

    在这种情况下,我用一个客户添加表单和提交按钮装箱一个iframe,在iframe中提交表单。

    我没有找到比使用iframe更好的方法来实现所描述的场景。 是的,我有一个要求,在同一页上有两个表单,并且新闻稿表单应该放在产品编辑表单中。业务需求由老板决定。

        4
  •  1
  •   CommonSenseCode    7 年前

    您可以使用iframe访问网站中来自第三方的广告,而无需向包含iframe的父文档提供任何附加控制或消息。

    这样你就可以访问你网站上的广告,但同时也可以防止未知资源的攻击。

    The mozilla dev pages explains it better :

    HTML元素表示一个嵌套的浏览上下文,有效地将另一个HTML页嵌入到当前页中。