html5shiv让IE也能支持HTML5标签的JavaScript兼容库

使用方法

作者已经把这段代码放到了Google code project上,不过由于Google的原因不能访问了,只需要在你的head标签中中调用这段代码就行。

<!–if lt IE 9]>
<script src="js/html5shiv.js"></script>
<!–endif]–>

当然你也可以直接把这个文件下载到自己的网站上。这个文件必须在head标签中调用,因为IE必须在元素解析这前知道这些元素,才能启作用!或许你还要在你的CSS文件中加上以下代码,不然有可能会出现些莫名其妙的问题。

header,nav,article,section,aside,footer{display:block;}

另外excanvas.js是Google为IE6支持canvas元素写的脚本,里面有很详细的例子,感兴趣的朋友可以去试试。

html5shiv原理

针对IE浏览器比较好的解决方案是html5shiv。html5shiv主要解决HTML5提出的新的元素不被IE6-8识别,这些新元素不能作为父节点包裹子元素,并且不能应用CSS样式。让CSS 样式应用在未知元素上只需执行 document.createElement(elementName) 即可实现。html5shiv就是根据这个原理创建的。

HTML5 Shiv 能够使用 HTML5 新加入的元素在旧版本的 Internet Explorer 浏览器上得到兼容,HTML5 Shiv 能够兼容Internet Explorer 6-9, Safari 4.x (and iPhone 3.x), and Firefox 3.x等浏览器。

项目文件介绍

html5shiv.js

这包括基本createElement()核心技术,对IE6-8中document.createElement 和document.createDocumentFragment 的调用,能够兼容 IE6-9, Safari 4.x and FF 3.x等浏览器。

html5shiv-printshiv.js

这包括以上所有,也是一种机制,允许HTML5元素为包含的子元素,在IE 6-8的浏览器上正常的显示。

HTML5 Shiv API

HTML5 Shiv作为一个简单兼容库。在大多数情况下,不需要配置HTML5 Shiv或使用方法用HTML5 Shiv提供。

html5.elements option

The elements option is a space separated string or array, which describes the full list of the elements to shiv. see also addElements.

Configuring elements before html5shiv.js is included.

//create a global html5 options object
window.html5 = {
  ‘elements‘: ‘mark section customelement‘
};

Configuring elements after html5shiv.js is included.

//change the html5shiv options object
window.html5.elements = ‘mark section customelement‘;
//and re-invoke the `shivDocument` method
html5.shivDocument(document);

html5.shivCSS

If shivCSS is set to true HTML5 Shiv will add basic styles (mostly display: block) to sectioning elements (like section, article). In most cases a webpage author should include those basic styles in his normal stylesheet to ensure older browser support (i.e. Firefox 3.6) without JavaScript.

The shivCSS is true by default and can be set false, only before html5shiv.js is included:

//create a global html5 options object
window.html5 = {
    ‘shivCSS‘: false
};

html5.shivMethods

If the shivMethods option is set to true (by default) HTML5 Shiv will overridedocument.createElement/document.createDocumentFragment in Internet Explorer 6-8 to allow dynamic DOM creation of HTML5 elements.

Known issue: If an element is created using the overridden createElement method this element returns a document fragment as its parentNode, but should be normally null. If a script relies on this behavior, shivMethodsshould be set to false. Note: jQuery 1.7+ has implemented his own HTML5 DOM creation fix for Internet Explorer 6-8. If all your scripts (including Third party scripts) are using jQuery’s manipulation and DOM creation methods, you might want to set this option to false.

Configuring shivMethods before html5shiv.js is included.

//create a global html5 options object
window.html5 = {
    ‘shivMethods‘: false
};

Configuring elements after html5shiv.js is included.

//change the html5shiv options object
window.html5.shivMethods = false;

html5.addElements( newElements [, document] )

The html5.addElements method extends the list of elements to shiv. The newElements argument can be a whitespace separated list or an array.

//extend list of elements to shiv
html5.addElements(‘element content‘);

html5.createElement( nodeName [, document] )

The html5.createElement method creates a shived element, even if shivMethods is set to false.

var container = html5.createElement(‘div‘);
//container is shived so we can add HTML5 elements using `innerHTML`
container.innerHTML = ‘<section>This is a section</section>‘;

html5.createDocumentFragment( [document] )

The html5.createDocumentFragment method creates a shived document fragment, even ifshivMethods is set to false.

var fragment = html5.createDocumentFragment();
var container = document.createElement(‘div‘);
fragment.appendChild(container);
//fragment is shived so we can add HTML5 elements using `innerHTML`
container.innerHTML = ‘<section>This is a section</section>‘;

Github地址:https://github.com/aFarkas/html5shiv

本文系作者 问说网 授权问说网发表,并经问说网编辑,转载请注明出处和 本文链接

本站文章除注明转载外,均为本站原创或翻译,欢迎任何形式的转载,但请务必注明出处,尊重他人劳动。
转载请注明:文章转载自:问说网 » html5shiv让IE也能支持HTML5标签的JavaScript兼容库
本文标题:html5shiv让IE也能支持HTML5标签的JavaScript兼容库
本文地址:http://www.uedsc.com/use-html5-for-ie.html

时间: 2024-11-04 11:04:03

html5shiv让IE也能支持HTML5标签的JavaScript兼容库的相关文章

让 IE9 以下的浏览器支持HTML5标签 和 CSS3选择器

做项目的很多时候,想用 HTML5  CSS3 新的技术,又考虑到低版本的浏览器不支持这些标签和属性,就让人烦恼,不过问题的出现,就有问题的解决方案,那么这里就介绍用 js 插件来让低版本浏览器也兼容吧... 让浏览器支持HTML5标签插件下载地址: http://code.google.com/p/html5shiv/ 让浏览器支持CSS3选择器插件下载地址: http://www.jb51.net/jiaoben/24032.html 使用方法: 下载插件,在下载到的文件中找到下面标着红颜色

ie8下面版本号(包含ie8)的浏览器不支持html5标签属性解决方式(Modernizr 2.6.2插件的使用)

我这边申明下:我写这篇日志主要是想然ie8可以支持html5的个别标签闭合,并不能让ie全然支持html5.我之前写的可能会误导非常多同学.希望大家能明确. 今天脑抽想用html5标签设计一个网页.我本人用的是火狐浏览器,都弄好后我发现一个非常严重的问题.除了ie9下面的浏览器都不能支持html5标签(article,aside,dialog,footer,header,section,footer,nav,figure,menu). 我上网找了好多中方法.有网友说使用 <!--[if lt I

如何让浏览器支持HTML5标签

在前端领域html5技术越来越流行了,可是还有一些浏览器不支持html5结构标签,这就让开发者非常蛋疼了.不过这也是没有办法的是,毕竟那些浏览器出生的时候要么还没有html5这回事.要么就是爹妈不愿意教他们怎么玩.今天就总结一下如何让浏览器支持html5结构标签(主要是前辈们的方法)借来一用: 一.使用Coding JavaScript 方法,不支持html5标签这种事一般都是IE8及其以下版本干的事,so: <!--[if lt IE9]> <script> (function(

ie8以下版本(包括ie8)的浏览器不支持html5标签属性解决方案(Modernizr 2.6.2插件的使用)

今天脑抽想用html5标签设计一个网页,我本人用的是火狐浏览器,都弄好后我发现一个很严重的问题,除了ie9以下的浏览器都不能支持html5标签(article,aside,dialog,footer,header,section,footer,nav,figure,menu). 我上网找了好多中方法,有网友说使用 <!--[if lt IE9]> <script> (function() { if (! /*@[email protected]*/ 0) return; var e

让ie浏览器支持html5标签的实现方法

Html5已经风靡很久了,不研究html5+css3实在有些过不去,今天先从最基本的开始介绍吧,让ie家族老前辈能够认识html5的新标签.前端资源分享 1.页面中加入代码 .代码   <!--[if lt IE 9]> <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> <![endif]--> 2.定义一下CSS代码(Important)

IE(IE6/IE7/IE8)支持HTML5标签--20150216

让IE(ie6/ie7/ie8)支持HTML5元素,我们需要在HTML头部添加以下JavaScript,这是一个简单的document.createElement声明,利用条件注释针对IE来调用这个js文件.Opera,FireFox等其他非IE浏览器就会忽视这段代码,也不会存在http请求. 方式一:引用google的html5.js文件,代码内容可以自己下载下来看. <!–[if lt IE9]> <script src="http://html5shiv.googleco

让IE6/IE7/IE8支持HTML5标签的js代码方法

让IE(ie6/ie7/ie8)支持HTML5元素,我们需要在HTML头部添加以下JavaScript,这是一个简单的document.createElement声明,利用条件注释针对IE来调用这个js文件.Opera,FireFox等其他非IE浏览器就会忽视这段代码,也不会存在http请求. 方式一:引用google的html5.js文件,代码内容可以自己下载下来看. <!–[if lt IE9]> <script src="http://html5shiv.googleco

IE(IE6/IE7/IE8)支持HTML5标签

让IE(ie6/ie7/ie8)支持HTML5元素,我们需要在HTML头部添加以下JavaScript,这是一个简单的document.createElement声明,利用条件注释针对IE来调用这个js文件.Opera,FireFox等其他非IE浏览器就会忽视这段代码,也不会存在http请求. <!–[if lt IE9]> <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"><

完美解决IE5,IE6,IE7,IE8不支持html5标签的方法

HTML5的语义化标签以及属性,可以让开发者非常方便地实现清晰的web页面布局,加上CSS3的效果渲染,快速建立丰富灵活的web页面显得非常简单. HTML5的新标签元素有: <header>定义页面或区段的头部: <footer>定义页面或区段的尾部: <nav>定义页面或区段的导航区域: <section>页面的逻辑区域或内容组合: <article>定义正文或一篇完整的内容: <aside>定义补充或相关内容: 使用他们能让代码