使用iframe替代html5中的帧

时间:2013-08-15 18:28:25

标签: jquery html5 iframe frameset

我是HTML5的新手,我做了一些研究,发现<frameset>的使用已经过时,而我的阅读<iframes>则没有。有人可以帮助我,我想获得与显示的示例相同的结果,但是在使用<iframes>或其他替代<frameset>时,HTLM5中没有弃用?

<frameset cols="20%,*,">
    <frame src="menu.html">
    <frame src="events.html">
</frameset> 

3 个答案:

答案 0 :(得分:29)

框架已被弃用,因为它们会导致网址导航和超链接出现问题,因为网址只会带给您索引页面(带框架集),并且无法指定每个框架窗口中的内容。 今天,网页通常由服务器端技术生成,例如PHP,ASP.NET,Ruby等。因此,通过将模板与这样的内容合并,可以简单地生成页面,而不是使用框架:

模板文件

<html>
<head>
<title>{insert script variable for title}</title>
</head>

<body>
  <div class="menu">
   {menu items inserted here by server-side scripting}
  </div>
  <div class="main-content">
   {main content inserted here by server-side scripting}
  </div>
</body>
</html>

如果您不完全支持服务器端脚本语言,则还可以使用服务器端包含(SSI)。这将允许你做同样的事情 - 即。从多个源文档生成单个网页。

但是,如果你真的只想让你的网页的一部分成为一个单独的“窗口”,你可以加载其他不一定位于你自己的服务器上的网页,你将不得不使用iframe

你可以这样模仿你的例子:

框架示例

<html>
<head>
  <title>Frames Test</title>
  <style>
   .menu {
      float:left;
      width:20%;
      height:80%;
    }
    .mainContent {
      float:left;
      width:75%;
      height:80%;
    }
  </style>
</head>
<body>
  <iframe class="menu" src="menu.html"></iframe>
  <iframe class="mainContent" src="events.html"></iframe>
</body>
</html>

可能有更好的方法来实现布局。我已经使用了CSS float属性,但您也可以使用表格或其他方法。

答案 1 :(得分:6)

虽然我同意其他所有人的意见,但如果您仍然决定使用框架,那么您可以在XHTML中执行index.html,然后在HTML5中执行框架内容。

答案 2 :(得分:3)

HTML 5确实支持iframe。添加了一些有趣的属性,如“sandbox”和“srcdoc”。

http://www.w3schools.com/html5/tag_iframe.asp

或者您可以使用

<object data="framed.html" type="text/html"><p>This is the fallback code!</p></object>