使用YUI3动态加载样式表

时间:2010-02-12 16:48:33

标签: css yui

我使用YUI3'Get'动态加载样式表。然而,这是完美的工作,据我所知,它没有给我任何方法为这些新的样式表设置id,导致样式表在用户浏览网站时多次加载。

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

有没有其他方法可以这样做,以便我可以在加载css之前进行测试,如果它已经被加载了?

由于

2 个答案:

答案 0 :(得分:1)

您是否尝试使用自己的变量来检查它是否已经加载?

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(); });

答案 1 :(得分:1)

我喜欢亨特的解决方案。但是,您可以访问插入的link节点,如果愿意,可以设置其ID:

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"));
    }
});
});