Как я могу узнать, загружен ли файл CSS, который я включил через JavaScript? - PullRequest
0 голосов
/ 21 июля 2009

У меня есть какой-то jQuery, который загружает новую таблицу стилей, например ...

$('head').append('<link rel="stylesheet" type="text/css" href="' + config.basePath + config.stylesheetsPath + 'sections/' + name + '.css" media="screen" class="new site-specific" />');

Затем я пытаюсь получить некоторую информацию из этого файла CSS сразу после. Как правило, он не будет отображать правильную информацию до второго запуска события (после того, как я представлю, что таблица стилей загружена).

Есть ли какое-либо событие, которое я могу прикрепить к триггеру при загрузке CSS?

Ответы [ 2 ]

2 голосов
/ 21 июля 2009

Если не существует какого-либо события "onload" для CSS (и должно быть, поскольку firebug покажет такую ​​вещь), я бы использовал следующую процедуру:
1. Поместите скрытый элемент DOM с цветом X.
2. в загруженном CSS этот цвет будет изменен на y
3. После того, как вы начнете загрузку (в вашем JS), вы создадите список, который будет активировать любую функцию, которую вы хотите, когда цвет изменится на y.

Под списком я имею в виду использование setInterval.

2 голосов
/ 21 июля 2009

Я не знаю, как вызвать событие, но вы можете сделать запрос на получение файла CSS, а затем просто обновить <head> новым тегом <style>, поместив содержимое файла в <style> tag?

$(document).ready(function() { 
   $.get("http://example.com/style.css", function(data) {
      $('head').append("<style>" + data + "</style>");
   });
   ... /* your code */ ...
}); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...