HTML5 shiv和附加到正文的元素的问题

时间:2011-10-17 16:45:22

标签: javascript jquery internet-explorer html5 modernizr

我遇到的问题是让html 5处理IE中添加到主体的元素。我正在使用Modernizr中包含的HTML 5 shiv,但它与任何其他HTML 5库存在同样的问题。

除了直接添加到正文的HTML 5元素之外,它适用于任何元素,这给出了相同的错误消息,就好像我在没有shiv的情况下使用jQuery一样(对方法或属性访问的意外调用) 。这是IE(7,8)中的一个突破性示例,其中加载了Modernizr或html5.js:

$(document).ready(function() 
{
    $('body').append('<nav class="test"></nav>');
    $('.test').html("Testing HTML 5");
});

为什么会出现这种情况的任何想法?

2 个答案:

答案 0 :(得分:3)

Joe Bartlett在this文章中解决了你的问题。他解释了这个问题并为它展示了一个解决方案(HTML5 innerShiv)。

IE8及以下的解决方案是插入他的script,然后将所有html5内容包装在innerShiv(...)中,然后再将其插入dom

$("body").append(innerShiv("<nav class=\"test\"></nav>"));

答案 1 :(得分:0)

我的理解是HTML5 shiv在页面加载时将HTML5元素添加到DOM,然后当你添加DOM元素之后,IE引擎无法识别它们,因为它们在页面加载时不存在应用了。

想知道这里最好的选择是做另一个document.createElement("nav");吗?