【发布时间】:2011-02-14 23:10:16
【问题描述】:
我做的app需要动态加载CSS和JS,目前解决方案如下:
myapp.loadCss = function(css){
$("head").append("<link>");
cssDom = $("head").children(":last");
cssDom.attr({rel: "stylesheet",
type: "text/css",
href: css
});
}
myapp.loadJs = funciton(js){
...
//$.ajax call is used in synchronized mode to make sure the js is fully loaded
}
}
当需要加载一些小部件时,通常调用be
myapp.loadCss('/widgets/widget1/css/example.css');
myapp.loadJs('/wiggets/widget1/js/example.js');
奇怪的是,有一段时间(10 或 20 中的 1 个),example.js 中新创建的 dom 元素将无法从 example.css 中获取其 CSS,但我的 loadCss 方法似乎没有以同步模式加载 CSS?我试图用以下代码替换我的 loadCss:
myapp.loadCss(css){
$('<link href="' + css + '" rel="stylesheet" type="text/css" />').appendTo($('head'));
}
那好像没问题(我刷新网页一百次验证:-() 但不幸的是这种方法在IE中失败了(IE7,没有在IE6、8中测试)
有没有更好的解决方案?
【问题讨论】:
标签: jquery css dynamic javascript