1

我们的一位网页设计师目前正在一个网站上工作,并且正在使用 HTML5 元素,她使用有据可查的 Html5Shiv 在旧浏览器中对其进行样式化;

http://css-tricks.com/html5-innershiv/

她今天报告了一些非常奇怪的行为,看起来这就是原因。最初它非常令人困惑,并且类似于以下内容;

“页面看起来不错,我刷新它看起来不错,刷新几次,偶尔它不会将我的样式应用于 HTML5 元素”

目前最好的理论是 shiv 的启动速度不够快,并且页面在新元素注册之前加载。我想知道是否有人可以提出一种可靠的方法来包含 shiv 并确保它在其他元素之前被加载和解析,所以它们肯定会被样式化。

编辑(更多信息)

Shiv 被包含在头部,直接在标题/元标签下方;

<!--[if IE]> <script type="text/javascript" src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script> <![endif]-->

正在设置样式的位在页脚中并且是跨站点的。许多页面的大小会发生变化,因为它们由我们的营销团队将使用的 CMS 提供支持,因此我无法提供确切的页面大小。我想说的是,如果页面大小是一个问题并且没有解决方法,有人可以告诉我,因为这意味着我们基本上不能在这个项目上使用 HTML5(或者至少我们需要添加多余的诸如 div 之类的标记,以确保布局不会发疯)

编辑 2

不幸的是,我没有机会发布代码 - 它只能在非常模糊的情况下重新创建,并且该项目目前被标记为“最高机密”:(如果没有人知道,那么我猜这要么是“每个人都知道”的情况它发生了,但有点忽略了它”或者只是它不是 shiv 的东西。

4

1 回答 1

2

您可以尝试将 html5shiv 代码(没有太多)直接放入浏览器的同一位置,看看是否有帮助。这样它就不会等待可能导致问题的单独 HTTP 请求。

编辑 我刚刚注意到您在谈论innerShiv而不是简单的html5Shiv。仅当您通过 jQuery 和/或 AJAX 动态插入 HTML5 元素时才需要innerShiv 。这是你在做什么,因为它听起来不像。如果是这样,您只需要html5Shiv

EDIT2啊,您上面的代码使用的是 html5Shiv 而不是 html5InnerShiv ...

于 2012-04-04T09:36:41.063 回答