克隆时IE8无法识别Html 5时间标记

mat*_*tst 5 javascript time jquery html5

我一直无法让IE在这种情况下识别新的Time标签.这一切在FF中都很有效.这是代码:

var origComment = $('.articleComment:first div');
if (origComment.length > 0) {
var commentHtml = origComment.clone(true);
commentHtml.find('time').text('today');
var html = '<article class="' + ((side == 'LEFT') ? '' : 'that') + '">' + commentHtml.html() + '</article>';
$(html).insertAfter('.articleComment:last');
Run Code Online (Sandbox Code Playgroud)

HTML看起来像这样:

<article class="articleComment that">
<div id="156" class="parent">
    <div class="byline">
    <p>Posted <time pubdate="pubdate" datetime="2010-05-07T09:11:08">today</time> by<br/>
        <a class="username" href="/u/matt">matt</a>
        </p>
        <p class="report"><a href="#">Report?</a></p>
    </div>
    <div class="comment">left</div>
</div>
</article>
Run Code Online (Sandbox Code Playgroud)

IE可以找到Time标签,但它返回2个元素的集合.我假设开始和结束.但是,我无法访问它来修改它.我试过val(),html()和text().我也不能放到实际的HTMLElement.我不能得到(0).innerHTML.但是,如果我.get(0).tagName它实际上是我得到的时间标签.

有任何想法吗?我希望这是有道理的.

Del*_*ani 7

IE 8不支持HTML 5.

编辑

要增加DOM中新标记的兼容性,请在以下脚本块中运行以下代码head:

var h5tags = 'abbr,article,aside,audio,bb,canvas,datagrid,datalist,\
 details,dialog,eventsource,figure,footer,header,\
 hgroup,mark,menu,meter,nav,output,progress,section,\
 time,video'.split(',');
for (var i = 0; i < h5tags.length; i++)
  document.createElement(h5tags[i]);
Run Code Online (Sandbox Code Playgroud)

另一个编辑:我打算.forEach()在上面的代码中使用,但是,等等...... IE 8不支持JavaScript 1.6.是啊.


Aar*_*ner 7

Delan Azabani对IE 8是正确的,它支持那些新的HTML5元素.它没有.

处理"低级"支持的一个好方法是使用这个shiv.

<!--[if lt IE 9]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
Run Code Online (Sandbox Code Playgroud)

在此处找到: http ://code.google.com/p/html5shiv/

它甚至支持IE <9中的打印,如果您需要它,这是一个棘手的问题.