开发者

cloneNode issue with HTML5 nodes in IE

I am trying to clone an HTML node using cloneNode() method of browser's DOM API and even using Jquery clone() function. The API works perfectly fine with HTML 开发者_开发知识库tags, However i am facing some issues while using it with HTML5 tags like time e.g.

The issue is that following <time> tag content <time class="storydate">April 7, 2010</time> gets converted to: <:time class=storydate awpUniq="912">April 7, 2010. Although IE renders the original time node correctly then why such issue with the clone API.

And this issue isn't observed in FF/ chrome. Please give some clue how to avoid this


Is this of any help? From the HTML5 Shiv issue list:

http://code.google.com/p/html5shiv/issues/detail?id=28

Links to

http://pastie.org/935834#49

solution seems to be:

// 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?
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜