我找不到一种方法来确定通过创建一个<link>
标签并指定href
属性动态创建的CSS是否已经加载。
考虑以下示例:
var css = document.createElement("link");
css.href = "not-a-directory/not-a-css";
document.body.appendChild(css);
一些浏览器(Firefox)即使路径不指定现有文件也会分派“onload”事件,但是,如果文件存在,只有在没有违反沙箱策略的情况下才会发生。 Opera、Google Chrome和Safari都以某种方式报告问题,但我找不到一种处理JavaScript的方法。
我不感兴趣支持MS Internet Explorer(该项目将部署到嵌入式WebKit/Opera浏览器),但如果有跨平台的方式,当然欢迎。
PS. “onerror”似乎在任何浏览器中都不会触发。
澄清:
抱歉,我需要提供更多信息。现在我将尝试解决这个问题:
1. 我宁愿不使用其他库(如jQuery),但如果它们用某种方式解决了此问题,那就是有效的解决方案,如果我可以看一下它们是如何做到的。 2. 代码将部署到SmartTV上的Opera或WebKit浏览器(请将其视为严重的大小限制+可能需要从文件系统而不是从网络加载文件)。这就是为什么我不能使用XMLHttpRequest的原因。 3. 如果您能想出一种测试给定路径的文本文件是否存在的方法(考虑iframe、link-也许还有其他元素?),那么这也是一个好选择。