哪些HTML元素支持onerror属性?

时间:2013-01-18 04:32:40

标签: javascript css onerror

我有一个从Google Web Fonts加载CSS和字体的网站。但是,将使用该站点的一个地方是本地Intranet,无法访问Internet。

我仍然希望使用Google提供的字体来获取Google提供的好处,例如从CDN下载的字体,以及可能已经在用户计算机上缓存访问使用它们的其他网站。< / p>

我也使用Google-hosted jQuery,如果无法访问Google,我会使用以下代码(来自HTML5 Boilerplate)从我的服务器加载jQuery:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="js/vendor/jquery-1.9.0.min.js"><\/script>')</script>

我正在寻找一种方法来为CSS文件做同样的事情。

我过去曾使用<img src="..." onerror="..." />来处理无法加载的图片,因此我想知道是否可以将其用于不加载的样式表。我在几个浏览器中使用<link href="..." onerror="..." rel="stylesheet" type="text/css" />进行了快速测试,并在所有浏览器中执行了onerror,但我想知道是否可以在所有浏览器中始终如一地使用它。 或者有更好的方法吗?

我在这里看到了其他几个讨论观看document.styleSheets集合的答案,但这听起来更像是一个黑客攻击。


注意:这实际上更像是“这是否实用,人们是否使用它” - 问题而不是“规范对此有何看法” - 问题。

2 个答案:

答案 0 :(得分:6)

我相信supported events on <script> and <link> at pieisgood的列表正是您所寻找的。

正如您所看到的, onload <link>最广泛支持的,它在工作事件中非常缺乏。但是你可以尝试通过 onload clearTimeout来实现一个错误事件,这个函数假设发生了错误。

答案 1 :(得分:0)

<link><style><script>都支持onerror属性,适用于大多数现代/流行的浏览器。

<link>的一个小警告是,当href URI被破坏或者链接样式表中的任何@import URI被破坏时,它将触发onerror事件。

我发现触发onerror <style>事件的唯一方法是使用@import

损坏的@font-face似乎没有触发任何一个标记的事件。