技术开发 频道

探秘IE8 JavaScript功能超乎想象

  【IT168 专稿】IE 7在CSS编程方面的改进给很多开发者带来了耳目一新的感觉,但是在JavaScript方面的表现却不敢恭维,实际上,在这方面我们看到的只是一些新的BUG。不过幸运是,微软已经看到了这一点,在IE 8中,JavaScript已经成为其开发的一个重点,下面我们就一起从开发者角度来看一下IE 8的一些特点。

W3C:querySelector

  IE8开始支持一些新的W3C规格,其中多了querySelector和querySelectorAll两个函数。querySelector是CSS selector的查找原理的一种快速实现方法。IE 8是第二个实现Selectors API的浏览器(另一个浏览器是WebKit)。

  简单来说,它实现的就是jQuery里令人惊艳的CSS Selector功能。例如以下的范例:(只有IE8可以跑,FF、IE7都会发生错误)

<html><body>
<div><div><span>InnerSpan</span></div></div>
<div><span class="myClass">ClassSpan</span></div>
<script type="text/javascript">
    alert(document.querySelector(
"div div span").innerHTML);
    alert(document.querySelector(
"span.myClass").innerHTML);
</script>
</body></html>

  这儿需要特别指出的是,任何Selectors要完全依靠浏览器的原生selector实现。IE8支持CSS2.1,因此开发者无需再等待CSS 3 selectors的推出。

支持更多HTML 5功能

  我一直希望在IE 8中增加一些HTML 5兼容功能,在IE 8中我们看到了4个在这方面的完整功能,非常棒!

  1、HTML 5: window.location.hash

  这个功能已经被多数浏览器支持的非常好。在IE8标准模式中将window.location.hash中的更改作为导航,并保存先前文档的URL,可以像在Ajax应用中模仿“后退”按钮效果。IE8中对它进行了改良,可以广播这个hashchanged时间,据我所知这是第一个采取这种处理方法的浏览器。

  2、HTML 5: DOM存储

  通过这个功能,数据可以持续保存在本地,它将取代原始的cookie存储机制。我们已经在2.0版本以后的Firefox浏览器中看到过这个功能,但是在Opera和Safari中尚未支持此功能。

  3、HTML 5: postMessage

  IE8现在支持跨文件消息通讯(Cross-Document Messaging-XDM)!通过onmessage事件和postMessage方法,两个来自不同域的网页可以进行通讯。

  目前IE 8、Opera 9、Firefox 3和WebKit nightlies版均支持这个功能,也就是说,该功能几乎已被所有最新浏览器支持。

  4、HTML 5: Offline Events

  在IE 8中拥有一些离线事件来检测网络的中断,通过它我们可以编写精彩的离线Ajax应用。目前来看支持这一功能的浏览器包括Firefox 3和IE 8。

 

0
相关文章