最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

HTML5中你不知道的5个新功能

来源:懂视网 责编:小OO 时间:2020-11-27 15:11:42
文档

HTML5中你不知道的5个新功能

当你在人群中谈论到“HTML5”,你也许会感觉到,自己像一位异域舞者或独角兽,来到屋子中间,带有明显的“我很酷,我知道它”的意味。这不能说我们虚荣,多少年来,基本的HTML API一直没有任何发展,以至于当有一个小的新功能出现时,例如placeholder,都会让我们露出新奇的眼神。尽管新式的浏览器中实现了很多HTML5特征,但大部分程序员仍对一些小的、非常有用的API不了解或从未听说。本文中我将介绍一些这样的API,并欢迎大家发掘出更多不为人知的HTML5 API。Element.classList。classList API提供了我们多年来一种使用JavaScript工具库来实现的控制CSS的基本功能。
推荐度:
导读当你在人群中谈论到“HTML5”,你也许会感觉到,自己像一位异域舞者或独角兽,来到屋子中间,带有明显的“我很酷,我知道它”的意味。这不能说我们虚荣,多少年来,基本的HTML API一直没有任何发展,以至于当有一个小的新功能出现时,例如placeholder,都会让我们露出新奇的眼神。尽管新式的浏览器中实现了很多HTML5特征,但大部分程序员仍对一些小的、非常有用的API不了解或从未听说。本文中我将介绍一些这样的API,并欢迎大家发掘出更多不为人知的HTML5 API。Element.classList。classList API提供了我们多年来一种使用JavaScript工具库来实现的控制CSS的基本功能。

这篇文章主要为大家详细介绍了不知道的几个HTML5新功能,为大家分享出更多不为人知的HTML5 API,感兴趣的小伙伴们可以参考一下

当你在人群中谈论到“HTML5”,你也许会感觉到,自己像一位异域舞者或独角兽,来到屋子中间,带有明显的“我很酷,我知道它”的意味。这不能说我们虚荣,多少年来,基本的HTML API一直没有任何发展,以至于当有一个小的新功能出现时,例如placeholder,都会让我们露出新奇的眼神。尽管新式的浏览器中实现了很多HTML5特征,但大部分程序员仍对一些小的、非常有用的API不了解或从未听说。本文中我将介绍一些这样的API,并欢迎大家发掘出更多不为人知的HTML5 API!

Element.classList

classList API提供了我们多年来一种使用JavaScript工具库来实现的控制CSS的基本功能:

XML/HTML Code复制内容到剪贴板
// 增加一个CSS类 
myElement.classList.add("newClass"); 
 
// 删除一个CSS类 
myElement.classList.remove("existingClass"); 
 
// 检查是否拥有一个CSS类 
myElement.classList.contains("oneClass"); 
 
// 反转一个CSS类的有无 
myElement.classList.toggle("anotherClass");
  • 这个新出现的API的主要价值体现就是:简单实用。读一下这篇文章,里面介绍了其它几个classList功能特征。

    ContextMenu API

    这个新的ContextMenu API非常的有用:它并不会替换原有的右键菜单,而是将你的自定义右键菜单添加到浏览器的右键菜单里:

    XML/HTML Code复制内容到剪贴板
    <section contextmenu="mymenu"> 
     
     <!-- 添加菜单 --> 
     <menu type="context" id="mymenu"> 
     <menuitem label="Refresh Post" onclick="window.location.reload();" icon="/images/refresh-icon.png"></menuitem> 
     <menu label="Share on..." icon="/images/share_icon.gif"> 
     <menuitem label="Twitter" icon="/images/twitter_icon.gif" 
     onclick="goTo('//twitter.com/intent/tweet?text=' + document.title + ': ' + window.location.href);"></menuitem> 
     <menuitem label="Facebook" icon="/images/facebook_icon16x16.gif" 
     onclick="goTo('//facebook.com/sharer/sharer.php?u=' + window.location.href);"></menuitem> 
     </menu> 
     </menu> 
    </section>
  • 需要注意的是,最好使用JavaScript动态的创建这些菜单代码,因为菜单事件最终要调用JavaScript执行任务,如果用户禁止了JavaScript,右键菜单也不会生成,他同时也不会看到菜单。

    Element.dataset

    使用dataset API,程序员可以方便的获取或设置data-*自定义属性:

    XML/HTML Code复制内容到剪贴板
    /* 以下面的代码为例 
     
     <p id="myp" data-name="myp" data-id="myId" data-my-custom-key="This is the value"></p> 
     
    */ 
     
    // 获取元素 
    var element = document.getElementById("myp"); 
     
    // 获取id 
    var id = element.dataset.id; 
     
    // 读取 "data-my-custom-key" 的值 
    var customKey = element.dataset.myCustomKey; 
     
    // 修改成其它值 
    element.dataset.myCustomKey = "Some other value"; 
     
     // 结果是: 
     // <p id="myp" data-name="myp" data-id="myId" data-my-custom-key="Some other value"></p>
  • 无需多说,跟classList一样,简单实用

    window.postMessage API

    即使是IE8也对postMessage API支持多年了,postMessage API的功能是可以让你在两个浏览器窗口或iframe之间传递信息数据:

    JavaScript Code复制内容到剪贴板
    // 从A域上的窗口或iframe,发送一条信息到B域中的窗口或ifame 
    var iframeWindow = document.getElementById("iframe").contentWindow; 
    iframeWindow.postMessage("来自第一个窗口的问候!"); 
     
    // 在第二个不同域上的窗口或iframe接收消息 
    window.addEventListener("message", function(event) { 
     // 检验域的合法性 
     if(event.origin == "http://www.webhek.com") { 
     // 
    输出日志信息 console.log(event.data); // 反馈消息 event.source.postMessage("你也好吗!"); } ]);
  • 消息体只能是字符串,但你可以用JSON.stringify和JSON.parse将消息转换成更有意义的数据体!

    autofocus属性

    autofocus属性能够让BUTTON, INPUT, 或 TEXTAREA元素在页面加载完成时自动成为页面焦点:

    XML/HTML Code复制内容到剪贴板
    <input autofocus="autofocus" /> 
    <button autofocus="autofocus">Hi!</button> 
    <textarea autofocus="autofocus"></textarea>
  • 在像谷歌搜索页面那样的有固定模式的地方,autofocus属性是最理想的一个功能。

    浏览器对各个API的支持稍有不同,所以,在使用前先检查一下对这些特征的支持情况。再花点时间阅读一下各个API的详细说明,相信你会有更多的发现。

    文档

    HTML5中你不知道的5个新功能

    当你在人群中谈论到“HTML5”,你也许会感觉到,自己像一位异域舞者或独角兽,来到屋子中间,带有明显的“我很酷,我知道它”的意味。这不能说我们虚荣,多少年来,基本的HTML API一直没有任何发展,以至于当有一个小的新功能出现时,例如placeholder,都会让我们露出新奇的眼神。尽管新式的浏览器中实现了很多HTML5特征,但大部分程序员仍对一些小的、非常有用的API不了解或从未听说。本文中我将介绍一些这样的API,并欢迎大家发掘出更多不为人知的HTML5 API。Element.classList。classList API提供了我们多年来一种使用JavaScript工具库来实现的控制CSS的基本功能。
    推荐度:
    • 热门焦点

    最新推荐

    猜你喜欢

    热门推荐

    专题
    Top