2010-02-12 51 views
1

我使用YUI3“动态”动态加载样式表。这是完美的工作,但是,据我可以告诉它不会给我任何方式来设置这些新的样式表的id,这导致样式表被加载多次,因为用户在网站周围浏览。使用YUI3动态加载样式表

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

有没有人有这样做,这样我可以在装载前的CSS测试,如果它已经加载的任何其他方式?

谢谢

回答

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

这会工作,谢谢。 – user103219 2010-02-12 18:18:33

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

我从来没有这样想过,这也会让我有其他的可能性。谢谢! – user103219 2010-02-12 22:32:32