[关闭]
@happyfans 2015-09-02T10:52:49.000000Z 字数 18056 阅读 2205

html5笔记

html5


支持html5的浏览器有Chrome 15.0.874,IE 9.0.8112,Firefox 8.0.1,Opera 11.52。

html5新特性

  • localStorage - 没有时间限制的数据存储
  • sessionStorage - 针对一个 session 的数据存储

html5与html4的区别

html5的新结构标签

html4的时候有一个普通的页面布局
html4布局
通过class来区分页面的结构,但是在html5中我们可以这样:
html5布局
代码如下:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>my page</title>
  5. </head>
  6. <body>
  7. <header>header</header>
  8. <nav>nav</nav>
  9. <article>
  10. <section>section</section>
  11. </article>
  12. <aside>aside</aside>
  13. <footer>footer</footer>
  14. </body>
  15. </html>
  1. <section>
  2. <h1>section是什么?</h1>
  3. <h2>一个新章节</h2>
  4. <article>
  5. <h2>关于section</h2>
  6. <p>section的介绍</p>
  7. ...
  8. </article>
  9. </section>
  1. <article>
  2. <header>
  3. <hgroup>
  4. <h1>这是一篇介绍HTML 5结构标签的文章</h1>
  5. <h2>HTML 5的革新</h2>
  6. </hgroup>
  7. <time datetime="2011-03-20">2011.03.20</time>
  8. </header>
  9. <p>文章内容详情</p>
  10. </article>
  1. <nav>
  2. <ul>
  3. <li>厚德IT</li>
  4. <li>FlyDragon</li>
  5. <li>J飞龙天惊</li>
  6. </ul>
  7. </nav>
  1. <aside>
  2. <h1>作者简介</h1>
  3. <p>厚德IT</p>
  4. </aside>
  1. <header>
  2. <hgroup>
  3. <h1>网站标题</h1>
  4. <h1>网站副标题</h1>
  5. </hgroup>
  6. </header>
  1. <footer>
  2. 页脚信息
  3. </footer>
  1. <hgroup>
  2. <h1>这是一篇介绍HTML 5结构标签的文章</h1>
  3. <h2>HTML 5的革新</h2>
  4. </hgroup>
  1. <figure>
  2. <img src="img.gif" alt="figure标签" title="figure标签" />
  3. <figcaption>这儿是图片的描述信息</figcaption>
  4. </figure>

增强型表单标签

HTML5新标准把文本框提示信息、表单校验、日期选择控件、颜色选择控件、范围控件、进度条、标签跨表单等功能直接加入新的表单标签中。 但在众多现代浏览器中,最新版本的Opera浏览器对新型表单的支持才最为完美。

1. Number类型input标签

  1. <input type="number" name="demoNumber" min="1" max="100" step="2"/>

最小值为1,最大值为100,每次增加或者减小的步长为2.

2.email类型input标签

  1. <input type="email" name="email" placeholder="请输入注册邮箱"/>

当表单在提交前,此文本框会自动校验是否符合邮箱的正则表达式。

3.url类型的input标签

  1. <input type="url" placeholder="请输入网址" name="url"/>

4.tel类型input标签

  1. <input type="tel" placeholder="输入电话" name="phone"/>

5.range类型input标签

  1. <input type="range" min="0" max="50" step="5" name="rangedemo" value="0"/>

此类型标签的加入,输入范围内的数据变得非常简单容易,而且非常标准,用户输入可感知体验非常好。另外此标签可以跟表单新增加的output标签一块使用,达到一个联动的效果,如下图:

  1. <form oninput="output.value=parseInt(range.value)"/>
  2. <input type="range" min="0" max="100" step="5" name="range" value="0"/>
  3. <output name="output">0<output/>
  4. </form>

range类型的标签

6.新的日期、时间、月份、星期input标签

  1. <input type="date" name="datedemo"/>

html5日历输入框
相关的日期属性还包括:monthtimeweekdatetime-localdatetime.

7.颜色选择input标签

  1. <input type="color" name="colordemo"/>

html颜色选择标签

8. input标签自动完成功能

  1. <input type="text" autocomplete="on" name="demoAutoComplete" list="autoNames" />
  2. <datalist id="autoNames">
  3. <option value="实验楼" ></option>
  4. <option value="HTML5" ></option>
  5. <option value="input标签" ></option>
  6. </datalist>

html5表单自动完成功能

html5表单新属性

  • autofocus属性,例如:<input type="text"
    autofocus="autofocus"/>
    此属性可以设置当前页面中input标签加载完毕后获得焦点。

  • max、min、step:跟数字相关。

  • placeholder:提示信息属性。

  • multiple:用于文件上传控件,设置此属性后,允许多个文件。

  • 校验属性:设置了required属性后预示着当前文本框在提交前必须有数据输入,而这一切都是由浏览器自动完成。还添加了pattern正则表达式校验:
    <input type="text" autofocus="autofocus" required pattern="\d+"/>

  • 另外一个较大的改进就是增加了form属性,也就是说,任何一个标签都可以指定它所属于一个表单,而不是必须在<form></form>中进行包裹了。
    <input type="text" form="demoform" name="demo"/>

form表单新增加的属性

  1. <form action="" method="POST" novalidate="true"></form>
  1. <fieldset>
  2. <legend>表单演示:最新Opera浏览器支持效果良好</legend>
  3. <form action="" method="POST" id="form1" oninput="output.value=parseInt(range.value)">
  4. <input type="text" autofocus="autofocus" required pattern="\d+" name="auto" placeholder="必填项测试" />
  5. <input type="number" name="demoNumber" min="1" max="100" step="2" />
  6. <input type="email" placeholder="请输入邮箱" name="mail" />
  7. <input type="url" name="url" placeholder="输入正确的网址" />
  8. <br />
  9. 日期:<input type="datetime" name="time" />
  10. 颜色:<input type="color" name="color" /><br />
  11. <br />
  12. <input type="range" min="0" max="50" step="5" name="range" value="0" />
  13. <output name="output">0</output>
  14. <br />
  15. <input type="submit" value="提交表单" />
  16. </form>
  17. 表单外的input标签:
  18. <input type="text" form="form1" name="demo" />
  19. </fieldset>

html5本地化存储和本地数据库

在html5之前,我们可以使用cookie机制在客户端保存简单的数据(例如用户名),但是传统的cookie存在以下的几个缺点:

Web Storage技术github范例就是在web上存储数据,有2种分类:

localStorage和sessionStorage都提供了四个方法来辅助我们进行对本地存储做相关操作。

我们可以通过Chrome的Dev Tool的Resources选项卡来查看Web Storage。
web storage

清除Web Storage只需要清除Cookie即可。

html5本地数据库

HTML5提供了一个浏览器端的数据库(SQL Lite和IndexedDB)支持,允许我们直接通JS的API在浏览器端创建一个本地的数据库,而且支持标准的SQL的CRUD操作,让离线的Web应用更加方便的存储结构化的数据。
操作本地数据库的最基本的步骤是:

  1. //获取或者创建一个数据库,如果数据库不存在那么创建之
  2. var dataBase = openDatabase("student_db", "1.0", "学生数据库", 1024 * 1024, function () {
  3. alert('数据库打开成功!');
  4. });

openDatabase方法打开一个已经存在的数据库,如果数据库不存在,它还可以创建数据库。几个参数意义分别是:

可以设置一个回调函数,此函数可以接受一个参数就是我们开启的事务的对象。然后通过此对象可以执行SQL脚本。

  1. ts.executeSql(sqlQuery,[value1,value2..],dataHandler,errorHandler);

参数说明:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title></title>
  5. <meta charset="utf-8">
  6. <script src="http://cdn.bootcss.com/jquery/1.9.1/jquery.min.js"></script>
  7. <script>
  8. //初始化数据库
  9. function initDatabase() {
  10. var db = getCurrentDb();
  11. if(!db) {
  12. alert("您的浏览器不支持HTML5本地数据库!");
  13. return;
  14. }
  15. //启动一个事务,并设置回调函数
  16. db.transaction(function (trans) {
  17. //执行创建表的Sql脚本
  18. trans.executeSql("create table if not exists tb_stu(sid text null,name text null)", [], function (trans, result) {
  19. },
  20. function (trans, message) {
  21. //消息的回调函数
  22. alert(message);
  23. }
  24. );
  25. });
  26. }
  27. //页面加载完成后绑定页面按钮的点击事件
  28. $(function () {
  29. initDatabase();
  30. $("#btnSave").click(function () {
  31. var sid = $("#sid").val();
  32. var name = $("#name").val();
  33. var db = getCurrentDb();
  34. //执行sql脚本,插入数据
  35. db.transaction(function (trans) {
  36. trans.executeSql("insert into tb_stu(sid,name) values(?,?) ", [sid, name],
  37. function (ts, data) {
  38. }, function (ts, message) {
  39. alert(message);
  40. }
  41. );
  42. });
  43. showAllTheData();
  44. });
  45. $('#btnShowData').click(function() {
  46. showAllTheData();
  47. });
  48. });
  49. // 打开或者创建数据库
  50. function getCurrentDb() {
  51. // 参数:数据库名称,版本,概述,大小。
  52. var db = openDatabase("db_stu", "1.0", "学生数据库", 1024 * 1024);
  53. return db;
  54. }
  55. //显示所有数据库中的数据到页面上去
  56. function showAllTheData() {
  57. $("#data").empty(); // 清空页面显示
  58. var db = getCurrentDb();
  59. db.transaction(function (trans) {
  60. trans.executeSql("select * from tb_stu ", [],
  61. function (ts, data) {
  62. if (data) {
  63. for (var i = 0; i < data.rows.length; i++) {
  64. appendData(data.rows.item(i));//获取某行数据的json对象
  65. }
  66. }
  67. },
  68. function (ts, message) {
  69. alert(message);
  70. var tst = message;
  71. }
  72. );
  73. });
  74. }
  75. // 将数据追加到页面
  76. function appendData(data) {
  77. //sid,name
  78. var sid = data.sid;
  79. var name = data.name;
  80. var strHtml = "";
  81. strHtml += "sid:" + sid + ",name:" + name + "<br />";
  82. $("#data").append(strHtml);
  83. }
  84. </script>
  85. </head>
  86. <body>
  87. 学号:<input type="number" id="sid"><br />
  88. 姓名:<input type="text" id="name"><br />
  89. <button id="btnSave">保存</button>
  90. <hr/>
  91. <button id="btnShowData">展示数据</button>
  92. <article id="data"></article>
  93. </body>
  94. </html>

html5-web-sql

html5文件操作API

在之前我们操作本地文件都是使用flash、silverlight或者第三方的activeX插件等技术,由于使用了这些技术后就很难进行跨平台、或者跨浏览器、跨设备等情况下实现统一的表现,从另外一个角度来说就是让我们的web应用依赖了第三方的插件,而不是很独立。 在HTML5标准中,默认提供了操作文件的API让这一切直接标准化。有了操作文件的API,让我们的Web应用可以很轻松的通过JS来控制文件的读取、写入、文件夹、文件等一系列的操作。

几个重要对象

  1. interface FileList {
  2. getter File? item(unsigned long index);
  3. readonly attribute unsigned long length;
  4. };
  1. interface Blob {
  2. readonly attribute unsigned long long size;
  3. readonly attribute DOMString type;
  4. //slice Blob into byte-ranged chunks
  5. Blob slice(
  6. optional long long start,
  7. optional long long end,
  8. optional DOMString contentType
  9. );
  10. };
  1. interface File : Blob {
  2. readonly attribute DOMString name;
  3. readonly attribute Date lastModifiedDate;
  4. };
  1. [Constructor]
  2. interface FileReader: EventTarget {
  3. // async read methods
  4. void readAsArrayBuffer(Blob blob);
  5. void readAsBinaryString(Blob blob);
  6. void readAsText(Blob blob, optional DOMString encoding);
  7. void readAsDataURL(Blob blob);
  8. void abort();
  9. // states
  10. const unsigned short EMPTY = 0;
  11. const unsigned short LOADING = 1;
  12. const unsigned short DONE = 2;
  13. readonly attribute unsigned short readyState;
  14. // File or Blob data
  15. readonly attribute any result;
  16. readonly attribute DOMError error;
  17. // event handler attributes
  18. attribute [TreatNonCallableAsNull] Function? onloadstart;
  19. attribute [TreatNonCallableAsNull] Function? onprogress;
  20. attribute [TreatNonCallableAsNull] Function? onload;
  21. attribute [TreatNonCallableAsNull] Function? onabort;
  22. attribute [TreatNonCallableAsNull] Function? onerror;
  23. attribute [TreatNonCallableAsNull] Function? onloadend;
  24. };

这个对象是非常重要第一个对象,它提供了四个读取文件数据的方法,这些方法都是异步的方式读取数据,读取成功后就直接将结果放到属性result中。所以一般就是直接读取数据,然后监听此对象的onload事件,然后在事件里面读取result属性,再做后续处理。当然abort就是停止读取的方法.

FileReader对象的三个读取文件数据方法如下:

  • readAsBinaryString(Blob blob) 传入一个Blob对象,然后读取数据的结果作为二进制字符串的形式放到FileReader的result属性中。
  • readAsText(Blob blob, optional DOMString encoding) 第一个参数传入Blog对象,然后第二个参数传入编码格式,异步将数据读取成功后放到result属性中,读取的内容是普通的文本字符串的形式。
  • readAsDataURL(Blob blob) 传入一个Blob对象,读取内容可以做为URL属性,也就是说可以将一个图片的结果指向给一个img的src属性。

读取文件上传控件里的文件并将内容已不同的方式展现到浏览器

在展示代码之前,之前我们操作一个图片文件,都是先将图片上传到服务器端,然后再使用一个img标签指向到服务器的url地址,然后再进行一个使用第三方插件进行图片处理,而现在这一切都不需要服务器端了,因为FileReader对象提供的几个读取文件的方法变得异常简单,而且全部是客户端js的操作。

范例一:获取上传的文件名

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title></title>
  5. <meta charset="utf-8">
  6. <script src="http://lib.sinaapp.com/js/jquery/1.9.1/jquery-1.9.1.min.js"></script>
  7. <script type="text/javascript">
  8. $(function () {
  9. $("#btnGetFile").click(function (e) {
  10. var fileList = document.getElementById("fileDemo").files;
  11. for (var i = 0; i < fileList.length; i++) {
  12. if (!(/image\/\w+/.test(fileList[i].type))) {
  13. $("#result").append("<span>type:"+fileList[i].type+"--******非图片类型*****--name:"+fileList[i].name+"--size:"+fileList[i].size+"</span><br />");
  14. } else {
  15. $("#result").append("<span>type:"+fileList[i].type+"--name:"+fileList[i].name+"--size:"+fileList[i].size+"</span><br />");
  16. }
  17. }
  18. });
  19. });
  20. </script>
  21. </head>
  22. <body>
  23. <form action="/home/index" method="POST" novalidate="true">
  24. <input type="file" multiple="multiple" name="fileDemo" id="fileDemo" /><br/>
  25. <input type="button" value="获取文件的名字" id="btnGetFile"/>
  26. <div id="result"></div>
  27. </form>
  28. <hr/>
  29. </body>
  30. </html>

html5文件api

范例二:读取上传文件内容,然后将文件内容直接读取到浏览器上。

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title></title>
  5. <meta charset="utf-8">
  6. <script src="http://lib.sinaapp.com/js/jquery/1.9.1/jquery-1.9.1.min.js"></script>
  7. <script type="text/javascript">
  8. if(typeof FileReader == "undified") {
  9. alert("您老的浏览器不行了!");
  10. }
  11. function showDataByURL() {
  12. var resultFile = document.getElementById("fileDemo").files[0];
  13. if (resultFile) {
  14. var reader = new FileReader();
  15. reader.readAsDataURL(resultFile);
  16. reader.onload = function (e) {
  17. var urlData = this.result;
  18. document.getElementById("result").innerHTML += "<img src='" + urlData + "' alt='" + resultFile.name + "' />";
  19. };
  20. }
  21. }
  22. function showDataByBinaryString() {
  23. var resultFile = document.getElementById("fileDemo").files[0];
  24. if (resultFile) {
  25. var reader = new FileReader();
  26. //异步方式,不会影响主线程
  27. reader.readAsBinaryString(resultFile);
  28. reader.onload = function(e) {
  29. var urlData = this.result;
  30. document.getElementById("result").innerHTML += urlData;
  31. };
  32. }
  33. }
  34. function showDataByText() {
  35. var resultFile = document.getElementById("fileDemo").files[0];
  36. if (resultFile) {
  37. var reader = new FileReader();
  38. reader.readAsText(resultFile,'gb2312');
  39. reader.onload = function (e) {
  40. var urlData = this.result;
  41. document.getElementById("result").innerHTML += urlData;
  42. };
  43. }
  44. }
  45. </script>
  46. </head>
  47. <body>
  48. <input type="file" name="fileDemo" id="fileDemo" multep/>
  49. <input type="button" value="readAsDataURL" id="readAsDataURL" onclick="showDataByURL();"/>
  50. <input type="button" value="readAsBinaryString" id="readAsBinaryString" onclick="showDataByBinaryString();"/>
  51. <input type="button" value="readAsText" id="readAsText" onclick="showDataByText();"/>
  52. <div id="result">
  53. </div>
  54. </body>
  55. </html>

html5canvas绘图API

Canvas就是一个画布,可以进行画任何的线、图形、填充等一系列的操作,而且操作的画图就是js,所以让js编程到了嗑药的地步。另外Canvas不仅仅提供简单的二维矢量绘图,也提供了三维的绘图,以及图片处理等一系列的api支持。

Canvas的Context对象

要使用Canvas必须使用html5的canvas标签。如范例所示如果浏览器不支持html5,段落内的文字将显示到页面上(其中width和height属性规定了画布的大小)。

  1. <canvas id="demo" width="500" height="500">
  2. <p>请使用支持html5的浏览器</p>
  3. </canvas>

以上的代码创建了一块画布,然后可以通过id获得canvas元素的DOM对象,通过DOM对象的getContext()方法可以得到Context对象(画布的上下文)。

  1. // 1.获取canvas元素
  2. var canvasDOM = document.getElementById('demo');
  3. // 2.获取canvas元素的上下文
  4. var context = canvasDOM.getContext('2d');

Context上下文默认两种绘制方式: 第一种:绘制线(stroke) 第二种:填充(fill)

范例一:使用canvas绘制矩形

  1. <canvas id="demo" width="500" height="500">
  2. <p>请使用支持html5的浏览器</p>
  3. </canvas>
  4. <script>
  5. // 1.获取canvas元素
  6. var canvasDOM = document.getElementById('demo');
  7. // 2.获取canvas元素的上下文
  8. var context = canvasDOM.getContext('2d');
  9. // 3.指定绘制的样式、颜色
  10. context.strokeStyle = 'red';
  11. // 4.绘制矩形(只有边界,无填充)-指定2个点即可
  12. context.strokeRect(10,50,200,100);
  13. // 填充矩形
  14. context.fillStyle = "blue";
  15. context.fillRect(110,110,100,100);
  16. </script>

html5 Canvas

范例二:使用Canvas绘制线条
Context对象的beginPath方法表示开始绘制路径,moveTo(x, y)方法设置线段的起点,lineTo(x, y)方法设置线段的终点,stroke方法用来给透明的线段着色。moveto和lineto方法可以多次使用。最后,还可以使用closePath方法,自动绘制一条当前点到起点的直线,形成一个封闭图形,缺省使用一次lineto方法。

  1. <canvas id="demo" width="500" height="500">
  2. <p>请使用支持html5的浏览器</p>
  3. </canvas>
  4. <script>
  5. //通过id获得当前的Canvas对象
  6. var canvasDOM= document.getElementById("demo");
  7. //通过Canvas Dom对象获取Context的对象
  8. var context = canvasDOM.getContext("2d");
  9. context.beginPath(); // 开始路径绘制
  10. context.moveTo(20, 20); // 设置路径起点,坐标为(20,20)
  11. context.lineTo(200, 200); // 绘制一条到(200,20)的直线
  12. context.lineTo(400, 20);
  13. context.closePath(); // 封闭图形
  14. context.lineWidth = 2.0; // 设置线宽
  15. context.strokeStyle = "#CC0000"; // 设置线的颜色
  16. context.stroke(); // 进行线的着色,这时整条线才变得可见
  17. </script>

canvas绘制线条
范例三:Canvas绘制文本
Context上下文对象的fillText(string, x, y)方法是用来绘制文本,它的三个参数分别为文本内容、起点的x坐标、y坐标。使用之前,需用font设置字体、大小、样式(写法类似与CSS的font属性)。与此类似的还有strokeText方法,用来添加空心字。另外注意一点:fillText方法不支持文本断行,即所有文本出现在一行内。所以,如果要生成多行文本,只有调用多次fillText方法。

  1. <canvas id="demo" width="500" height="500">
  2. <p>请使用支持html5的浏览器</p>
  3. </canvas>
  4. <script>
  5. var canvasDOM= document.getElementById("demo");
  6. var context = canvasDOM.getContext("2d");
  7. context.moveTo(200,200);
  8. context.font = "Bold 50px Arial"; // 设置字体
  9. context.textAlign = "left"; // 设置对齐方式
  10. context.fillStyle = "#005600"; // 设置填充颜色
  11. context.fillText("老马!", 10, 50); // 设置字体内容,以及在画布上的位置
  12. context.strokeText("blog.itjeek.com!", 10, 100);// 绘制空心字
  13. </script>

使用canvas绘制文字

范例四:Canvas绘制圆形和椭圆
Context上下文的arc方法就是绘制圆形或者椭圆,arc方法的x和y参数是圆心坐标,radius是半径,startAngle和endAngle则是扇形的起始角度和终止角度(以弧度表示),anticlockwise表示做图时应该逆时针画(true)还是顺时针画(false)

  1. <canvas id="demo" width="500" height="500">
  2. <p>请使用支持html5的浏览器</p>
  3. </canvas>
  4. <script>
  5. var canvasDOM= document.getElementById("demo");
  6. var context = canvasDOM.getContext("2d");
  7. context.beginPath();
  8. //绘制以 (60,60)为圆心,50为半径长度,从0度到360度(PI是180度),最后一个参数代表顺时针旋转。
  9. context.arc(60, 60, 50, 0, Math.PI * 2, true);
  10. context.lineWidth = 2.0; //线的宽度
  11. context.strokeStyle = "#000"; //线的样式
  12. context.stroke(); //绘制空心的,当然如果使用fill那就是填充了。
  13. // context.fill();
  14. </script>

canvas绘制圆形

范例五:使用canvas绘制图片
Canvas绘制图片应该是他的一大特点或者是亮点吧。当然配合File的API,让JS变得无可匹敌。那接下里给大家演示一下怎样绘制图片,并且做出一个立体效果出来。

  1. <canvas id="demo" width="500" height="500">
  2. <p>请使用支持html5的浏览器</p>
  3. </canvas>
  4. <script>
  5. var canvasDOM= document.getElementById("demo");
  6. var context = canvasDOM.getContext("2d");
  7. var image = new Image(); // 创建一张图片
  8. image.src = "http://7xlan5.com1.z0.glb.clouddn.com/images/html5-canvas-arc.jpg";// 设置图片url
  9. image.onload = function () { // 图片加载
  10. for (var i = 0; i < 10; i++) {
  11. context.drawImage(image,100 + i * 80,100 + i * 80);
  12. }
  13. }
  14. </script>

canvas绘制图片


框架

使用框架iframe可以在一个页面中嵌入多个别的页面,并且当一个页面中内容过多的时候会自动展示滚动条。例如:

index.html(嵌入了frame1和frame2)如下:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>iframe框架的使用</title>
  6. </head>
  7. <body>
  8. 这是index.html <br />
  9. <iframe src="frame1.html" frameborder="2" width="300px" height="300px"></iframe>
  10. <iframe src="frame2.html" frameborder="0" width="300px" height="50px"></iframe>
  11. </body>
  12. </html>

而frame1(嵌入了frame1-1):

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>frame1</title>
  6. </head>
  7. <body style="background:red">
  8. 这是frame1
  9. <iframe src="frame1-1.html" width="200px" height="100px" frameborder="0"></iframe>
  10. </body>
  11. </html>

frame1-1

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>frame1-1</title>
  6. </head>
  7. <body style="background:green">
  8. 这是frame1-1.html<br /><br />
  9. <a href="http://www.baidu.com" target="_parent">百度一下</a><br />
  10. 这是内容,当内容过多的时候会自动展示滚动条!
  11. </body>
  12. </html>

frame2

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>frame2</title>
  6. </head>
  7. <body style="background:gray">
  8. This is frame2
  9. </body>
  10. </html>

效果图:

iframe标记与a标签的target属性

框架与超链接的target属性

在以上的代码中,我们在frame1-1中嵌入了一个超链接,指定该链接的不同target属性页面的打开方式将不同,具体表现是:

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注