Случайная загрузка файла CSS - не работает в IE8 (7?) - PullRequest
1 голос
/ 21 ноября 2011

Я загружаю файл 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 ]

3 голосов
/ 21 ноября 2011

Может быть, попробуйте поместить этот код в голову и использовать document.write.некрасиво, но сработает ....

2 голосов
/ 21 июня 2012

Я знаю, что это может быть слишком поздно, но это может помочь кому-то еще.

Вместо использования

$('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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...