2011-06-30 14 views
7

już mam następujące dla plików JS:Google CDN Hosted jQuery UI CSS z lokalnym zastępczym?

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script> 
<script type="text/javascript">!window.jQuery && document.write(unescape("%3Cscript src='/app_shared/script/jquery-1.6.1.min.js' type='text/javascript'%3E%3C/script%3E"))</script> 

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.14/jquery-ui.min.js"></script> 
<script type="text/javascript">!window.jQuery.ui && document.write(unescape("%3Cscript src='/app_shared/script/jquery-ui.min.js' type='text/javascript'%3E%3C/script%3E"))</script> 

Jak mogę pójść na coś podobnego do tematu? mogę go pobrać z sieci CDN, takich jak ten:

<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.14/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/> 

Ale jak można sprawdzić, czy plik został pobrany, aby odwoływać się do lokalnej kopii na niepowodzenie? Wiem, jak dodać lokalną kopię programowo z jQuery, ale nie wiem, jak sprawdzić, czy pobieranie CSS zakończyło się sukcesem. Czy blokowanie pobierania tagów jest blokowane <link>, czy też są asynchroniczne? To też byłby problem.

Odpowiedz

0

Można wykonać sprawdzenie stylu, w którym czcionka powinna być określoną rodziną, a następnie sprawdzić pod kątem tej nazwy rodziny. Jeśli nazwa nie jest tym, czego się spodziewasz, załaduj kopię lokalną.

+0

szukam czegoś solidniejszego/konsekwentny niż tego – bevacqua

+0

Tam naprawdę nie jest w żaden inny sposób. Musisz poczekać, aż css się załaduje, a następnie sprawdzić jakiś styl. Nie, że element.style nie zadziała. Jest jeszcze jeden, który jest potrzebny, gdy mówi styl załadowany z zewnętrznego pliku. –

+0

CSS może ładować się asynchronicznie, więc musimy zasymulować zdarzenie 'on_CSS_failed'. – Karolis