BoFiaZ: Scripte wird abgebrochen... aber warum?

Hi,

ich habe eine JavaScrip-Datei die einige anderen Library`s von jQuery per document.write einbindet und eigentlich ein Formular überprüfen soll. Dies funktioniert jedoch nicht, aber offensichtlich nicht wegen einer falschen Angabe im Script sondern weil das Script generell abgebrochen wird. Seltsam ist jedoch das es läuft sobald ich zwischen das erste document.write und dem zweiten ein alert() schreibe.

So funktioniert das Script:

alert("1");  
document.write("<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js' type='text/javascript'></script>");  
alert("2");  
document.write("<script src='http://dev.jquery.com/view/trunk/plugins/validate/jquery.validate.js' type='text/javascript'></script>");  
  
  
$(document).ready(function(){  
  
        alert("3");  
  
        $("#Kontaktformular").validate();  
  
        alert("4");  
  
});  
  
alert("5");  

Aber so jedoch nicht (alert("2");) wurde entfernt:

alert("1");  
document.write("<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js' type='text/javascript'></script>");  
document.write("<script src='http://dev.jquery.com/view/trunk/plugins/validate/jquery.validate.js' type='text/javascript'></script>");  
  
  
$(document).ready(function(){  
  
        alert("3");  
  
        $("#Kontaktformular").validate();  
  
        alert("4");  
  
});  
  
alert("5");  

Kann mir jemand sagen warum das Script so nicht läuft? Ich kann ja nun schlecht überall alert ausgeben damit das Teil läuft. Ich bin etwas ratlos...

Danke für Eure Hilfe!

  1. Hi,

    Kann mir jemand sagen warum das Script so nicht läuft?

    Höchstvermutlich wird die Fehlerkonsole des Browsers das können.

    MfG ChrisB

    --
    “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
    1. Da steht:
      <b>$ is not defined</b>

      mit einem Verweis auf diese Zeile:

      $(document).ready(function(){  
      
      

      Nicht wirklich hilfreich... ($) sollte ja schon dabei stehen...

      1. Nicht wirklich hilfreich... ($) sollte ja schon dabei stehen...

        Ich finde schon, d.h. das Framework ist nicht ordnungsgemäß geladen geworden.

        Struppi.

        1. Gibt es denn keine Möglichkeit mehrere JavaScript Dateien zu importieren ohne dafür jedesmal alles direkt in das HTML Dokument zu schreiben? So wie es mit CSS auch möglich ist?

          Wie soll das mit createElement funktionieren? Ich muss noch hierfür ein HTML Tag bereitstellen den ich dann quasi mit den Daten befülle. Das ist doch in einer JavaScript Datei garnicht möglich. Könnt ihr mir vielleicht mal ein Beispiel dafür geben? Vielen Dank!

          1. Hi,

            Wie soll das mit createElement funktionieren? Ich muss noch hierfür ein HTML Tag bereitstellen den ich dann quasi mit den Daten befülle.

            Hä?

            Könnt ihr mir vielleicht mal ein Beispiel dafür geben?

            Du erzeugst ein neues SCRIPT-Element, stattest es mit den erforderlichen Attributen aus, und hängst es ins Dokument ein.

            MfG ChrisB

            --
            “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
        2. Hallo Struppi,

          Ich finde schon, d.h. das Framework ist nicht ordnungsgemäß geladen geworden.

          ^
                                                  noch

          Gruß, Jürgen

  2. Hi!

    Was in einem Script-Block mit document.write ins DOM geschrieben wird, ist erst hinter diesem Block verfügbar. Versuche es besser mit document.createElement('script');.

    Gruß, LX

    --
    RFC 1925, Satz 6a: Es ist immer möglich, einen weiteren Umweg einzufügen.
    RFC 1925, Satz 11a: Siehe Regel 6a
    1. Hallo LX,

      Was in einem Script-Block mit document.write ins DOM geschrieben wird, ist erst hinter diesem Block verfügbar. Versuche es besser mit document.createElement('script');.

      da kann es aber sein, dass das Script asynchron geladen wird. Siehe

      http://www.j-berkemeier.de/test/Nachladen.html

      und vor allem im Quelltext die Kommentare.

      @BoFiaZ

      wenn du dein Script erst nach dem Laden der Seite startest, sollte es auch mit document.write funktionieren. Das Setzen des onload-Eventhandlers am body darfst du dann natürlich nicht mit einer der nachgeladenen Funktionen machen.

      Gruß, Jürgen