我正在使用一点随机化动态加载CSS文件:
var cookie = $.cookie('necgroupcolour', { path: '/' });
if (cookie == null) {
var rnd = Math.floor(Math.random() * 3);
$.cookie('necgroupcolour', rnd, { path: '/' });
}
switch ($.cookie('necgroupcolour', { path: '/' })) {
case "0":
$('head').append('<link rel="stylesheet" type="text/css" href="/css/purple/HomeMaster.css" />');
break;
case "1":
$('head').append('<link rel="stylesheet" type="text/css" href="/css/blue/HomeMaster.css" />');
break;
case "2":
$('head').append('<link rel="stylesheet" type="text/css" href="/css/green/HomeMaster.css" />');
break;
default:
$('head').append('<link rel="stylesheet" type="text/css" href="/css/purple/HomeMaster.css" />');
}
这适用于Firefox,Safari,Chrome,但不适用于IE8或更低版本。
当通过Fiddler运行并检查源代码时,您可以看到没有加载CSS文件。
我有什么想法可以解决这个问题吗?
答案 0 :(得分:3)
也许尝试将此代码放在头部并使用document.write。难看,但会工作....
答案 1 :(得分:2)
我知道这可能为时已晚,但可能有助于其他人。
而不是使用
$('head').append('<link rel="stylesheet" type="text/css" href="PATH_TO_CSS_FILE>');
使用以下代码:
var fileref = document.createElement("link");
fileref.setAttribute("rel", "stylesheet");
fileref.setAttribute("type", "text/css");
fileref.setAttribute("href", PATH_TO_CSS_FILE);
document.getElementsByTagName("head")[0].appendChild(fileref);