我试图使用浏览器的DOM API的clone node()方法克隆一个HTML节点,甚至使用Jquery clone()函数。这个API在HTML标签上运行得非常好,但是我在使用HTML5标签(比如time)时遇到了一些问题。
问题是,以下<time>标记内容<time class="storydate">April 7, 2010</time>转换为:2010年4月7日。尽管IE正确地呈现了原始时间节点,但是克隆API为什么会出现这样的问题。
在FF/chrome中没有发现这个问题。请告诉我如何避免这种情况

最佳答案

这有什么帮助吗?从HTML5 Shiv问题列表中:
http://code.google.com/p/html5shiv/issues/detail?id=28
链接到
http://pastie.org/935834#49
解决办法似乎是:

// Issue: <HTML5_elements> become <:HTML5_elements> when element is cloneNode'd
// Solution: use an alternate cloneNode function, the default is broken and should not be used in IE anyway (for example: it should not clone events)

// Example of HTML5-safe element cloning
function html5_cloneNode(element) {
  var div = html5_createElement('div'); // create a HTML5-safe element

  div.innerHTML = element.outerHTML; // set HTML5-safe element's innerHTML as input element's outerHTML

  return div.firstChild; // return HTML5-safe element's first child, which is an outerHTML clone of the input element
} // critique: function could be written more cross-browser friendly?

08-25 17:19
查看更多