0

我正在使用 HTML5 标签,header并且正在使用 html5shiv:http ://code.google.com/p/html5shiv/ 。

浏览文件,似乎一切都被一堆不必要的文件过度了,所以我通过 html5shiv http://css-tricks.com/snippets/javascript/make-html5-elements-work-in研究了一种更简单的方法-old-ie/并简单地添加“热链接”:http ://html5shiv.googlecode.com/svn/trunk/html5.js并让他们托管其余部分。

然后我在想,即使这段代码似乎也有些过头了。为什么我不能只使用 createelement http://reference.sitepoint.com/javascript/Document/createElement,为什么我需要所有的 html5shiv 代码?

下面是一些来自的代码:http: //html5shiv.googlecode.com/svn/trunk/html5.js

.cloneNode():f=c(a),f.canHaveChildren&&!d.test(a)?
g.appendChild(f):f},a.createDocumentFragment=Function("h,f","return function(){var 
n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+i().join()

我不是 JavaScript 的专业人士,但我不明白为什么这是必要的?

4

1 回答 1

1

HTML5Shiv 修复了在 IE 中使用 HTML5 元素的几个问题,而不仅仅是能够首先创建元素的显而易见的问题。第一个版本就是这样,但后来的版本为其他问题添加了进一步的修复。

我知道的另外两个问题是:

  • 包含 HTML5 元素的打印页面的错误。
  • .innerHTML与 HTML5 元素一起使用时出现的错误。

允许将这些元素添加到页面的基本问题是一段非常简短的代码,但其他两个问题是大部分 HTML5Shiv 代码的来源。

可以在这里找到 HTML5Shiv 历史的完整记录以及添加这些内容的时间:http: //paulirish.com/2011/the-history-of-the-html5-shiv/

于 2012-09-05T20:59:33.840 回答