Динамическая загрузка таблицы стилей с использованием YUI3 - PullRequest
1 голос
/ 12 февраля 2010

Я динамически загружаю таблицы стилей, используя YUI3 'Get'. что работает безупречно, однако, насколько я могу судить, это не дает мне никакого способа установить идентификаторы для этих новых таблиц стилей, в результате чего таблица стилей загружается несколько раз, когда пользователь перемещается по сайту.

var css_obj = Y.Get.css(location.pathname+"/../css/"+jta["iss"]+".css");

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

Спасибо

Ответы [ 2 ]

1 голос
/ 12 февраля 2010

Мне нравится решение Хантера. У вас есть доступ к вставленному узлу link, и вы можете установить его идентификатор, если хотите:

http://ericmiraglia.com/yui/demos/cssid.php

YUI().use("get", function(Y) {

    Y.Get.css("http://ericmiraglia.com/yui/demos/red.css", {
        onSuccess: function(o) {
        o.nodes[0].setAttribute("id", "myElementId");
        alert(o.nodes[0].getAttribute("id"));
    }
});
});
1 голос
/ 12 февраля 2010

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

var css_obj;

function LoadCss() {
    if (css_obj == null) {
        css_obj = Y.Get.css(location.pathname+"/../css/"+jta["iss"]+".css");
    }
}

и если вы используете jQuery, вы можете написать

$(document).ready(function(){ LoadCss(); });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...