随机CSS文件加载 - 在IE8中不起作用(7?)

时间:2011-11-21 11:21:59

标签: javascript css internet-explorer

我正在使用一点随机化动态加载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文件。

我有什么想法可以解决这个问题吗?

2 个答案:

答案 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);