Динамическая загрузка таблицы стилей с использованием YUI3

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

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

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

Спасибо


person user103219    schedule 12.02.2010    source источник


Ответы (2)


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

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(); });
person hunter    schedule 12.02.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"));
    }
});
});
person Eric Miraglia    schedule 12.02.2010
comment
Я никогда не думал об этом таким образом, это также даст мне другие возможности. Спасибо! - person user103219; 13.02.2010