我使用以下JavaScript动态加载样式表:
function set_stylesheet(name) {
var link = document.getElementById('userstylelink');
link.href = link.href.replace(/[^\/]+\.css$/, name + '.css');
}
有没有办法确定新的CSS文件是否加载成功?如果失败,我希望能够应用默认样式表。
发布于 2011-04-19 05:14:43
您可能想在这里看到我对另一个类似问题的回答:Detect and log when external JavaScript or CSS resources fail to load
基本上,您可以添加onload回调来查看文件是否已加载。(当然,如果您通过JS加载)
发布于 2011-04-29 21:16:41
最简单的方法是在分配新的href之后检查链接元素的styleSheet.cssText属性。
function set_stylesheet(name) {
var link = document.getElementById('userstylelink');
link.href = link.href.replace(/[^\/]+\.css$/, name + '.css');
if ( link.styleSheet.cssText ) {
//if not empty string, it was loaded
}
else {
link.href = "default.css";
}
或者,还有一个"onerror“事件,它会在分配href后加载资源失败时触发。
发布于 2011-04-10 05:40:36
理想情况下,您应该在开始时加载它们,然后在其间切换。
http://www.alistapart.com/articles/alternate/
http://www.thesitewizard.com/javascripts/change-style-sheets.shtml
这并没有真正回答问题,但我认为这种方式更可取。
https://stackoverflow.com/questions/5607239
复制相似问题