我找不到一种方法来确定 CSS 是否确实已加载,该 CSS 是通过创建<link>
标签动态创建的,然后指定属性。href
考虑以下示例:
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"
似乎没有在任何浏览器中触发。
澄清
抱歉,我必须提供更多信息。现在我将尝试解决这个问题:
我不喜欢使用其他库(如 jQuery),但如果他们以某种方式解决了它,那是一个有效的解决方案,如果我可以看看他们是如何做到的。
该代码将部署到 SmartTV 上的 Opera 或 WebKit 浏览器(将其解读为严重的大小限制 + 可能需要从文件系统而不是从网络加载文件)。这就是为什么我不能使用
XMLHttpRequest
.如果您能想出一种方法来测试给定路径是否存在文本文件(想想
iframe
,link
-也许是其他元素?)这也是一个不错的选择。