我正在努力实现以下目标:
这里的问题是最后一步。
向DOM添加新的CSS文件没有问题,但如何知道浏览器何时完成加载文件? 在实际加载文件之前,我无法使用新加载的样式启动动画。
或者:是否可以使用异步请求加载CSS文件,并使用Javascript将CSS代码注入DOM而无需手动解析?
非常感谢!
丹尼斯
答案 0 :(得分:6)
我知道这个问题很老了,但是如果有人谷歌这个,这里有一个函数可以让你定义一个回调来让你知道何时加载样式表:
var css = function(url, callback) {
var head = document.getElementsByTagName('head')[0];
var cssnode = document.createElement('link');
cssnode.type = 'text/css';
cssnode.rel = 'stylesheet';
cssnode.href = url;
cssnode.onreadystatechange = callback;
cssnode.onload = callback;
head.appendChild(cssnode);
}
答案 1 :(得分:5)
答案 2 :(得分:1)
function loadjscssfile(filename, filetype){
if (filetype=="js"){ //if filename is a external JavaScript file
var fileref=document.createElement('script')
fileref.setAttribute("type","text/javascript")
fileref.setAttribute("src", filename)
}
else if (filetype=="css"){ //if filename is an external CSS file
var fileref=document.createElement("link")
fileref.setAttribute("rel", "stylesheet")
fileref.setAttribute("type", "text/css")
fileref.setAttribute("href", filename)
}
if (typeof fileref!="undefined")
document.getElementsByTagName("head")[0].appendChild(fileref)
}
loadjscssfile("myscript.js", "js") //dynamically load and add this .js file
loadjscssfile("javascript.php", "js") //dynamically load "javascript.php" as a JavaScript file
loadjscssfile("mystyle.css", "css") ////dynamically load and add this .css file