Kürzlich schreibe ich ein Projektframework und schreibe eine JQueryMessageBox -Klasse, um das Dialog () in JQuery UI zu verwenden, um das Nachrichtenfeld anzuzeigen. Um die Methode einfach zu rufen, wird eine automatische Beurteilsseite hinzugefügt, um festzustellen, ob UI.JS und UI.CSS hinzugefügt werden. Der Code ist wie folgt:
// Wenn Ui.js nicht enthalten ist, referenz if ($ ('script [src $ = "" jquery-ui-1.8.11.custom.min />").appendTo('head'); }} //If css is not loaded, load if ($('link[ref$=""jquery-ui-1.8.14.custom.css""]').length == 0) {{ $('<link href=""/css/jquery-ui-1.8.14.custom.css"" rel = "" Stylesheet "" Typ = "" Text /CSS "" /> ").Appendto(''Head ');Der CSS -Code wird jedoch nicht sofort geladen, daher gibt es beim Anzeigen des Dialogs keinen Stil (er ist in IE9 in Ordnung, denn selbst wenn CSS nach dem Herunterladen in IE9 heruntergeladen wird, werden die Seitenelemente neu gezeichnet, während IE8 nicht). Die Lösung für dieses Problem kann mit AJAX durchgeführt werden. Wenn das CSS geladen wird, wird der Dialog angezeigt, sodass es mit dem Stil angezeigt werden kann. Der Code ist wie folgt:
if ($ ('link [ref $ = "" jQuery-ui-1.8.14.custom.css ""]'). Länge == 0) {$ .ajax ({url: '/css/jquery-ui-1.8.14.custom type = "text/css"> ' + data.replace (/url/(Bilder/g,' url (/css/bilder ') +' </style> '). AppendTo (' Kopf '); // Dialog () Skript;}});