2

我在让 html 5 处理添加到 IE 中的正文的元素时遇到问题。我正在使用Modernizr中包含的 HTML 5 shiv,但它与任何其他 HTML 5 库都有相同的问题。

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

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

任何想法为什么会发生这种情况?

4

2 回答 2

3

Joe Bartlett 在本文中解决了您的问题。他解释了这个问题并展示了一个解决方案(HTML5 innerShiv)。

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

$("body").append(innerShiv("<nav class=\"test\"></nav>"));
于 2011-10-17T18:07:37.000 回答
0

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

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

于 2011-10-17T17:10:34.127 回答