我遇到的问题是让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");
});
为什么会出现这种情况的任何想法?
答案 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");
吗?