使用iframe替代html5中的帧

use*_*329 26 iframe jquery html5 frameset

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

<frameset cols="20%,*,">
    <frame src="menu.html">
    <frame src="events.html">
</frameset> 
Run Code Online (Sandbox Code Playgroud)

drw*_*ode 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>
Run Code Online (Sandbox Code Playgroud)

如果您不完全支持服务器端脚本语言,则还可以使用服务器端包含(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>
Run Code Online (Sandbox Code Playgroud)

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


use*_*102 7

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

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

或者你可以使用

<object data="framed.html" type="text/html"><p>This is the fallback code!</p></object>
Run Code Online (Sandbox Code Playgroud)

  • 这注入了 html, head 标签,这仍然是有效的 html 吗? (2认同)

小智 6

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