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

发布于 2024-12-10 22:24:17 字数 487 浏览 1 评论 0原文

我在让 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");
});

您知道为什么会发生这种情况吗?

I am having an issue with getting html 5 to work on elements added to the body in IE. I am using the HTML 5 shiv included in Modernizr but it is the same problem with any other HTML 5 library.

It works fine for any element except HTML 5 elements added directly to the body, which gives the same error message as if I was using jQuery without the shiv (Unexpected call to method or property access). This is a breaking example in IE (7, 8) with Modernizr or html5.js loaded:

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

Any ideas why this might happen?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

原谅过去的我 2024-12-17 22:24:17

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

IE8 及以下版本的解决方案是插入他的 脚本 并将所有 html5 内容包装在innerShiv(...) 在将其插入 dom 之前

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

Joe Bartlett adressed your problem in this article. He explaines the problem and shows a solution (HTML5 innerShiv) for it.

The solution for IE8 and below would be to insert his script and than wrap all your html5 content in an innerShiv(...) before inserting it into the dom

$("body").append(innerShiv("<nav class=\"test\"></nav>"));
顾铮苏瑾 2024-12-17 22:24:17

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

想知道这里最好的选择是否是再执行一次 document.createElement("nav");

My understanding is that the HTML5 shiv is adding the HTML5 elements to the DOM on page load and then when you add the DOM elements after that, the IE engine fails to recognize them because they were not there at page load when the shiv was applied.

Wondering if the best bet here is to do another document.createElement("nav");?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文