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

Random CSS file loading - not working in IE8 (7?)

本文关键字:IE8 工作 文件 CSS 加载 随机      更新时间:2023-09-26

我正在动态加载一个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文件被加载。

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

也许可以尝试将这段代码放在head中并使用document.write。丑陋,但会工作....

我知道这可能太晚了,但它可能会帮助别人。

不使用

$('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);