Récemment, j'écris un framework de projet et j'écris une classe jQueryMessageBox pour utiliser la boîte de dialogue () dans jQuery UI pour afficher la zone de message. Afin de rendre la méthode facile à appeler, une page de jugement automatique est ajoutée pour déterminer si UI.js et ui.css sont ajoutés. Le code est le suivant:
// si ui.js n'est pas inclus, référence if ($ ('script [src $ = "" jQuery-ui-1.8.11.custom.min.js ""]'). Length == 0) {{$ ("" <script src = '/ js / jquery-ui-1.8.11.custom.min.js' type = 'Text / javascript' />"). rel = "" Stylesheet "" type = "" text / css "" />' ).APPENDTO('HEAD ');Cependant, le code CSS ne sera pas chargé immédiatement, il n'y aura donc pas de style lors de l'affichage de la boîte de dialogue (c'est OK dans IE9, car même si CSS est téléchargé après le télécharger dans IE9, les éléments de la page seront redéqués, alors que IE8 ne le fera pas). La solution à ce problème peut être effectuée en utilisant Ajax. Lorsque le CSS est chargé, la boîte de dialogue sera affichée, afin qu'elle puisse être affichée avec le style. Le code est le suivant:
if ($ ('lien [ref $ = "" jQuery-ui-1.8.14.custom.css ""]'). Length == 0) {$ .ajax ({url: '/css/jquery-Ui-1.8.14.custom.css', Success: fonction (données) {// Créer un élément de style et l'envie type = "Text / CSS"> '+ data.replace (/ url / (images / g,' url (/ css / images ') +' </ style> ').