html5技术介绍,Html接口

  html5技术介绍,Html接口

  原文地址:5个你不知道存在的HTML5 APIs

  原文:2010年9月27日

  翻译日期:2013年8月7日

  当人们看到或者说出‘html 5’这个词的时候,估计至少有一半以上的人会把她想成一个性感迷人的美女,一个只会把你搞得一团糟的独角兽。这能怪我们开发商吗?

  我们已经注意到那些基本的API已经停滞了如此长的时间(大约1999-2009年),以至于像‘占位符’这样的基础的附加功能将会花费我们很长的时间来处理。

  虽然目前的主流浏览器已经实现了HTML5的很多新特性,但是很多开发者根本没有注意到这些更简单更有用的API。

  本系列文章介绍了这些接口API,并希望鼓励更多的开发者去探索那些不广为人知的API。

  Element.classList

  这个属性已经发布好几年了,通过classList,我们可以通过JavaScript操纵底层css的class属性。

  代码如下:复制代码。代码如下:

  //使用classList属性(Dom元素,css类名)

  函数toggleClassList(element,cName){

  //1.类别列表API

  //切换类,有则移除,无则添加。

  if(element.classList.toggle){

  element . class list . toggle(cName);

  返回true

  }

  //!实际上,如果支持的话,

  //那么下面的代码就不会执行了。这只是一个演示。请灵活运用。

  //2.类别列表API

  //元素的class属性是否包含CSS类hide?

  var hasHide=element . class list . contains(cName);

  //

  如果(哈希德){

  //3.类别列表API

  //删除隐藏类

  element . class list . remove(cName);

  }否则{

  //4.类别列表API

  //添加隐藏类

  element . class list . add(cName);

  }

  返回true

  };

  上下文菜单API

  Chrome28测试后不工作。

  新的API context menu是一个优秀的接口:这个接口允许您简单地将菜单项添加到浏览器的上下文菜单(右键菜单)中,而不是覆盖浏览器的默认右键菜单。

  需要注意的是,你最好使用js脚本动态创建菜单contextmenu,避免页面禁用JS脚本时出现多余的HTML代码。

  代码如下:复制代码。代码如下:

  div class=隐藏

  !- contextmenu指定要使用的上下文菜单。-

  !- !不知道为什么,我浏览器上的这个配置不行。-

  section context menu= my menu style= min-height:100px;最小高度:200px背景:# 999;

  h1单击此区域查看菜单/h1

  !-

  为了代码结构的清晰,将menu元素放在要使用的元素内。事实上,你也可以把它放在外面的任何地方:

  -

  !-添加菜单。至于图片图标,请自行设置。添加菜单-

  菜单类型=上下文 id=我的菜单

  menuitem label= refresh page onclick= window . location . reload();icon= http://mat 1 . gt img . com/app/opent/images/wiki/resource/weiboicon 32 . png /menuitem

  Menu=共享到.图标= 3358www.sinaimg.cn/blog/developer/wiki/32x32.png

  Menuitem label=新浪微博 icon= http://www.sinaimg.cn/blog/developer/wiki/32x32.png onclick= window . location . href= 3358 www . Weibo . com /menuitem

  Menuitem label=腾讯微博 icon= http://mat1.gtimg.com/app/opent/images/wiki/Resource/Weibo icon 32 . png onclick= window . location . href= 3358t . QQ . com /menuitem/menuitem

  /菜单

  /菜单

  /部分

  /div

  元素.数据集

  Dataset) API允许开发人员在DOM元素上以数据前缀开始设置和获取属性值。

  代码如下:复制代码。代码如下:

  div id= intro data-website= www . csdn . net data-id= 551996458 data-my-name= iron anchor data-blog-URL= 3358blog.csdn.net/renfufei/div将代码复制如下:

  函数testDataset(){

  //

  var intro=document . getelementbyid( intro );

  //注意,这不是id属性,而是data-id的值

  var id=intro . dataset . id;

  //数据-网站

  var website=intro . dataset . website;

  //数据-博客-网址,驼峰命名.

  var blog URL=intro . dataset . blog URL;

  //数据-我的名字

  var myName=intro。数据集。我的名字;

  //

  var msg=qq: id

  ,网站:网站

  ,布洛格尔:"布洛格尔

  ,我的名字:我的名字

  ;

  //

  warn(msg);

  };

  没有什么好说的,和优等生名单一样,简单却实用。(想一想,是否改变了后台和前台射流研究…的某些交互以及解耦?)

  window.postMessage API

  IE8已经支持邮件后应用程序接口好几年了,此应用程序接口允许窗户和内联框架元素之间互相传递消息。

  跨域支持哦。代码如下:复制代码代码如下:

  //从域一上的窗口或框架向承载另一个域的内联框架发送消息

  var iframe window=文档。getelementbyid( iframe ).内容窗口;

  iframeWindow.postMessage(第一个窗口的你好!);

  //从不同主机上的内联框架内部接收消息

  窗户。addevent侦听器(消息,函数(事件){

  //确保我们信任发送域

  如果(事件。产地== http://大卫沃尔什。姓名){

  //注销消息

  控制台。日志(事件。数据);

  //发回一条消息

  event.source.postMessage(你好,回来!);

  }

  ]);

  //消息只允许线类型的数据,然而您可以使用JSON.stringify以及JSON.parse传递更多有意义的消息。

  自动聚焦属性

  自(动)调焦装置属性确保当页面加载后,给定的输入按钮或者文本区域元素能够自动获得焦点。复制代码代码如下:

  输入自动对焦=自动对焦/

  按钮自动对焦=自动对焦嗨!/按钮

  textarea自动聚焦=自动聚焦/textarea

  自(动)调焦装置属性主要用在简单的输入页面,详情请参考:自动对焦属性

  各浏览器厂商对这些应用程序接口的支持度各不相同,所以在使用之前最好检测一下兼容性,花一些时间来阅读上面所列出的API,您将会对他们了解和掌握更多。

  部分的测试代码如下:复制代码代码如下:

  !声明文档类型

  超文本标记语言

  头

  标题5个你不知道的HTML5 API接口演示/标题

  meta name= Generator content= edit plus

  meta name= Author content= renfufei @ QQ。 com

  meta name= Description content= original=http://David Walsh。名称/html 5-API

  风格。隐藏{显示:无}。poplayer { z指数:999;位置:绝对;背景色:# ffftop:0px;左:0px溢出:隐藏;宽度:100%;身高:100%;不透明度:1;}。关闭{ top:3px;右:10px位置:绝对;}

  /风格

  脚本

  //显示警告信息

  功能警告(消息){

   warn=warn 一个未知警告!

  if(window.console){

  控制台。warn(msg);

  }否则{

  警报(消息);

  }

  };

  //使用优等生名单属性(Dom元素,css类名)

  函数toggleClassList(element,cName){

  //1.类别列表应用程序接口

  //切换类,有则移除,没有则添加

  if(element.classList.toggle){

  元素。班级名单。toggle(cName);

  返回真实的

  }

  //!其实,本函数toggleClassList如果支持的话,

  //那么下面的代码就不会被执行,此处仅作演示,请灵活应用

  //2.类别列表应用程序接口

  //元素的班级属性是否包含隐藏这个半铸钢钢性铸铁(铸造半钢)类

  var hasHide=element。班级名单。包含(cName);

  //

  如果(哈希德){

  //3.类别列表应用程序接口

  //移除隐藏类

  元素。班级名单。删除(cName);

  }否则{

  //4.类别列表应用程序接口

  //添加隐藏类

  元素。班级名单。添加(cName);

  }

  返回真实的

  };

  //使用类名属性(Dom元素,css类名)

  函数toggleClassName(element,cName){

  var class name=element。类名 “”;

  //去掉首尾的空白

  cname=cname.replace(/^\s*\s*$/g,);

  //cName中间如果含有空白字符,则失败。如果要好好处理,可以拆分为数组,单个处理

  var blank reg=/\ s/;

  if(blankReg.test(cName)){

  警告(“cName”)中间含有空白字符);

  返回错误的

  }

  //正则,\b表示可见连续字符的边界,可以这么理解:

  //hide2 hide hide myname 那么,

  //hide2的前后各有一个虚拟的\b,隐藏前后也有,

  //但是你好和需要(需求的缩写)之间则没有。

  //g表示单行全局

  //var rep=/\ b hide \ b/g;

  var rep=new RegExp( \ \ b cName \ \ b , g );

  如果(重复测试(类名)){

  类名=类名。replace(rep, );

  }否则{

  名称

  }

  //替换新类名。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: