Добавить .css файл - Firefox против IE - PullRequest
2 голосов
/ 08 октября 2009

Я обнаружил, что IE использует другое поведение по сравнению с Firefox, когда я использую это

$ ( 'голова') перед именем ( '');.

Это в основном просто для добавления theme-2.css сверху в тег HEAD (для цели темы). Я делаю это потому, что пока не хочу его загружать, потому что использую csspreload http://www.filamentgroup.com/lab/update_automatically_preload_images_from_css_with_jquery/

В Firefox файл .css сверху будет приоритетным для файлов ниже. Это отлично работает!

В IE вступит в силу НОВЫЙ файл .css, добавляемый позже в HEAD. Это не имеет значения, сверху или снизу.

  1. Как исправить это поведение для IE?
  2. Есть ли другой загрузчик изображений, который я могу вводить .css файлы в параметры, и он загружается оттуда? Текущий должен видеть .css файл в ссылке в html.

Спасибо

Ответы [ 2 ]

2 голосов
/ 09 октября 2009

Я не совсем понимаю, что вы пытаетесь сделать здесь - вы пытаетесь динамически добавить таблицу стилей на страницу без влияния на страницу, чтобы предварительно загрузить ее изображения?

Если это так, то этот фрагмент может действительно хотеть, чтобы вы:

$('link[rel="stylesheet"][href="theme-2.css"]').attr('disabled', 'disabled');

Это отключит таблицу стилей, но она останется загруженной. Если вы хотите включить его в будущем, вы можете сделать это:

$('link[rel="stylesheet"][href="theme-2.css"]').removeAttr('disabled');

Edit: Я полагаю, что вам действительно нужна функциональность атрибута disabled. Вы можете установить это, когда добавляете эту таблицу стилей, и она не будет применена к странице. Приведенные выше фрагменты демонстрируют, как это сделать динамически.

0 голосов
/ 09 октября 2009

Прежде всего, в Internet Explorer, вероятно, не существует способа успешного выполнения того, что вы хотите. Если только в IE вы не добавите существующие таблицы стилей снова после загрузки соответствующей таблицы стилей.

Во-вторых, почему бы просто не изменить существующий плагин?

Позвоните с помощью:

$.preloadCssImages({extra: [{href: "/css/styles.css"}]});

Или, если у вас есть несколько дополнительных CSS-файлов:

$.preloadCssImages({extra: [{href: "/css/styles.css"}, {href: "/css/styles2.css"}]});

1011 * Etc. *

Затем, после строки "parseCSS (document.styleSheets)" внизу файла, вставьте:

if (settings.extra)
{
    parseCSS(settings.extra);
}

Легко, peasy.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...