überprüfen ob jquery-ui-1.8.10.custom.min.js geladen ist

BlubBlub

Mitglied
HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">

<html>
	<head>
		<title> HTML Testseite</title>
	</head>
	
	<body>
		Statischer Text mit Zeilenumbruch
		<br>
		Statischer Text ohne Zeilenumbruch
		
	       <script type="text/javascript">
		        var jQueryScript = document.createElement("script");
		        jQueryScript.type = "text/javascript";
		        jQueryScript.src= "jquery-1.5.min.js";
		        document.getElementsByTagName("head")[0].appendChild(jQueryScript);

			var jQueryUIScript = document.createElement("script");
			jQueryUIScript.type = "text/javascript";
			jQueryUIScript.src= "jquery-ui-1.8.10.custom.min.js";
			document.getElementsByTagName("head")[0].appendChild(jQueryUIScript);
	
			if (jQuery().ui) 
			{
				alert("jQuery().ui geladen");
				alert("typeof(jQuery().ui)" + typeof(jQuery().ui)); 
			} 
			else 
			{
				alert("jQuery().ui nicht geladen");
				alert("typeof(jQuery().ui)" + typeof(jQuery().ui)); 
			}
		</script>
	</body>
</html>

Hi ich wollte überprüfen, ob jquery-ui-1.8.10.custom.min.js geladen ist, wie mach ich das? Denn obiger Code funktioniert nicht.
 
Zuletzt bearbeitet:
HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">

<html>
	<head>
		<title> HTML Testseite</title>
	</head>
	
	<body>
		Statischer Text mit Zeilenumbruch
		<br>
		Statischer Text ohne Zeilenumbruch
		
		<script type="text/javascript">	
			alert("vor der ersten while Schleife und vor jQuery Einbindung: " + typeof(typeof(jQuery)) + "   " + typeof(jQuery));
			
			var jQueryScript = document.createElement("script");
			jQueryScript.type = "text/javascript";
			jQueryScript.src= "jquery-1.5.min.js";
			document.getElementsByTagName("head")[0].appendChild(jQueryScript);
			
			i = 1;
			while(jQuery() == "undefined")
			{
				alert("in der ersten while Schleife: " + i);
				i++;
			}
			alert("nach der ersten while Schleife: " + typeof(jQuery));
			
			var jQueryUIScript = document.createElement("script");
			jQueryUIScript.type = "text/javascript";
			jQueryUIScript.src= "jquery-ui-1.8.10.custom.min.js";
			document.getElementsByTagName("head")[0].appendChild(jQueryUIScript);
	
                         i=1;
			while(jQuery().ui == "undefined");
			{
				alert("jQuery().ui nicht geladen :" + j);
				alert("typeof(jQuery().ui)" + typeof(jQuery().ui)); 
                                i++;     
			}
			
                       if (jQuery().ui) 
		       {
			         alert("jQuery().ui geladen");
				 alert("typeof(jQuery().ui)" + typeof(jQuery().ui)); 
		       }	
		</script>
	</body>
</html>

Dieser Code müsste meines Achtens eigentlich funktionieren tut er aber nicht , ich versteh aber nicht wieso.
FireBug sagt mir jQuery is not defined beim Aufruf der ersten Schleife. Und dann arbeitet das Programm einfach nicht weiter.
 
Zuletzt bearbeitet:
Versuchs mal mit

Javascript:
if(window.jQuery) //...
if(window.jQuery.ui) //...

Denn zu Prüfen, ob "window" die Eigenschaft "jQuery" besitzt, ist legitim und führt nicht zum Abbruch des Skripts. Aber eine Funktion aufzurufen, welche nicht existiert, schon.
 
Hi,

oder ein ganz anderer Ansatz:

Verwende das onload-Ereignis bzw. für den IE die onreadystatechange-Funktionalität.

Beispiel:
Code:
/*
 * script-Element als letzten Kindknoten ins Elternelement (objParent) einhängen
 * und load-Event für das Script-Element konfigurieren, so dass nach dem vollständigen
 * Laden die enthaltenen Routinen verfügbar sind.
 *
 * Parameter:
 * - objParent      (object) Elternknoten, in den das Script-Element eingehängt werden soll
 * - objScriptElem  (object) Script-Element, das eingehängt werden soll
 * - fnListener     (function) Listener-Funktion, die nach dem Laden des Scripts ausgeführt werden soll
 */
var addRessource = function(objParent, objScriptElem, fnListener){

  var objSafeListener = function(){
   try{
      fnListener();
    }catch(e){}
  };

  // Nur IEs
  if(/*@cc_on!@*/false){
    objScriptElem.onreadystatechange = function(){
      if(objScriptElem.readyState === "loaded" || objScriptElem.readyState === "complete"){
        // Speicherlecks und mehrfachen Aufruf der Callback-Funktion im IE vermeiden
        objScriptElem.onreadystatechange = null;
        objSafeListener();
      }
    };
  // Sonstige Browser (DOM Level 0)
  }else{
    objScriptElem.onload = objSafeListener;
  }

  // Script-Element einhängen
  objParent.appendChild(objScriptElem);
};

var jQueryScript = document.createElement("script");
jQueryScript.type = "text/javascript";
jQueryScript.src= "jquery-1.5.min.js";
addRessource(document.getElementsByTagName("head")[0], jQueryScript, function(){alert(typeof jQuery);});
Ciao
Quaese
 
Zurück