【发布时间】:2011-07-29 02:24:40
【问题描述】:
我正在尝试使用 javascript 动态加载 css 文件,并且不能使用任何其他 js 库(例如 jQuery)。
css 文件加载,但我似乎无法获得回调来为它工作。下面是我正在使用的代码
var callbackFunc = function(){
console.log('file loaded');
};
var head = document.getElementsByTagName( "head" )[0];
var fileref=document.createElement("link");
fileref.setAttribute("rel", "stylesheet");
fileref.setAttribute("type", "text/css");
fileref.setAttribute("href", url);
fileref.onload = callbackFunc;
head.insertBefore( fileref, head.firstChild );
使用以下代码添加脚本标签以加载 js 文件有效并触发回调:
var callbackFunc = function(){
console.log('file loaded');
};
var script = document.createElement("script");
script.setAttribute("src",url);
script.setAttribute("type","text/javascript");
script.onload = callbackFunc ;
head.insertBefore( script, head.firstChild );
我在这里做错了吗?任何其他可以帮助我实现这一目标的方法将不胜感激?
【问题讨论】:
-
我建议如果有你不想想要使用的库,那么不要在问题中标记它们。标记它们仍然会为您的问题吸引 [错误] 类型的开发人员。
-
与stackoverflow.com/questions/3078584/link-element-onload 非常相似。是否使用 jQuery 无关紧要(jQuery 代码可以很容易地转换为 vanilla)。主要问题是,直到最近,WebKit 还不支持
link元素的load事件。这是大量且仍然非常普遍的手机,包括 iOS 和 Android。 (不寻常的是,IE 支持自 IE7 以来的事件,如果不是更早的话。)
标签: javascript css callback loading