Andy: Externe JavaScript einbauen

Hi,

die Frage kam bestimmt schon meherere Male, doch muss ich sie leider noch mal stellen, da ich keinerlei vernünftige Antworten finden konnte:

Kann ich externe JavaScripts in eine HTML Datei einbinden, die dann von allen Browsern gelesen werden?

Falls ja, wie funzt das?
Denn
<SCRIPT LANGUAGE="JavaScript" SRC="resize.js"></SCRIPT>
 mit zusätzlich <body onload="*"> funktioiert bei mir irgendwie nicht.

Danke für Eure Hilfe im Voraus

Andy

  1. Hallo Andy,

    Kann ich externe JavaScripts in eine HTML Datei einbinden, die dann von allen Browsern gelesen werden?

    Klar - die werden von allen Browsern mit aktiviertem JS gelesen.

    <SCRIPT LANGUAGE="JavaScript" SRC="resize.js"></SCRIPT>

    1. LANGUAGE kannst Du den Hasen geben.
    2. Da fehlt das obligatorische type="text/javascript"
    3. Wird die Datei resize.js mit dem richtigen Mimetype (text/javascript) vom Server geliefert?

    Wenn alle drei Punkte erfüllt sind, müsste es in jeden Browser laufen, sofern keine Syntaxfehler in der Datei sind.

    Bei Netscape/Mozilla (egal, welche Version) kannst Du notfalls die JS-Konsole per javascript: in die Adresszeile aufrufen.

    mit zusätzlich <body onload="*"> funktioiert bei mir irgendwie nicht.

    onload="*"? Woher hast Du denn das? Das ist Käse.

    Grüße,

    Christian

    1. Also ich habe folgende JavaScript Datei:
      <script language="Javascript">
      <!--
      var w = 100;
      var h = 70;
      var n = (document.layers) ? 1:0;
      var ie = (document.all) ? 1:0;
      function makeObj(obj,nest){
      nest=(!nest) ? '':'document.'+nest+'.'
      this.css=(n) ? eval(nest+'document.'+obj):eval(obj+'.style')
      this.evnt=(n)? eval(nest+'document.'+obj):eval(obj);
      this.moveIt=b_moveIt;}
      function b_moveIt(x,y){
      this.x=x; this.y=y
      this.css.left=this.x
      this.css.top=this.y}
      var pageWidth,pageHeight
      function init(){
      oTest=new makeObj('divBottom')
      pageWidth=(ie)?document.body.offsetWidth-4:innerWidth;
      pageHeight=(ie)?document.body.offsetHeight-2:innerHeight;
      checkIt()
      if(ie) window.onscroll=checkIt;}
      function f(){alert(f)}
      function checkIt(){
      if(ie) oTest.moveIt(document.body.scrollLeft+pageWidth-w,document.body.scrollTop+pageHeight-h)
      else if(n){oTest.moveIt(window.pageXOffset+pageWidth-w, window.pageYOffset+pageHeight-h)
      setTimeout('checkIt()',20)}}
      //-->
      </script>

      Diese wird mit meinem <body onload="init()" aufgerufen! Doch wenn ich die extern aufrufen will, funzt das nicht.

      Eine dämliche Frage: Muss das in den Head oder in den Body. Es funzt in beidem nicht!

      1. Hallo,

        Also ich habe folgende JavaScript Datei:
        <script language="Javascript">
        <!--

        Das gehört nicht in eine .js-Datei. Das gehört nur in HTML rein.

        var w = 100;
        var h = 70;
        var n = (document.layers) ? 1:0;
        var ie = (document.all) ? 1:0;

        Ist zwar kein Syntaxfehler, aber Du beachtest nur die proprietären Erweiterungen von MS und Netscape. Neuere Browser kommen damit nicht klar. (Speziell Opera, Netscape 6+, Mozilla)

        function makeObj(obj,nest){
        nest=(!nest) ? '':'document.'+nest+'.'
        this.css=(n) ? eval(nest+'document.'+obj):eval(obj+'.style')
        this.evnt=(n)? eval(nest+'document.'+obj):eval(obj);

        Eval ist böse[tm].

        this.moveIt=b_moveIt;}
        function b_moveIt(x,y){
        this.x=x; this.y=y

        ^ hier fehlt ein Semikolon

        this.css.left=this.x

        ^ hier auch

        this.css.top=this.y}

        ^ hier auch

        var pageWidth,pageHeight

        ^ hier auch

        function init(){
        oTest=new makeObj('divBottom')

        ^ hier auch

        pageWidth=(ie)?document.body.offsetWidth-4:innerWidth;
        pageHeight=(ie)?document.body.offsetHeight-2:innerHeight;
        checkIt()

        ^ hier auch

        if(ie) window.onscroll=checkIt;}
        function f(){alert(f)}
        function checkIt(){
        if(ie) oTest.moveIt(document.body.scrollLeft+pageWidth-w,document.body.scrollTop+pageHeight-h)

        ^ hier schon wieder

        else if(n){oTest.moveIt(window.pageXOffset+pageWidth-w, window.pageYOffset+pageHeight-h)

        ^ hier auch

        setTimeout('checkIt()',20)}}

        ^ hier auch

        //-->
        </script>

        Das gehört nicht is .js-Dateien.

        Eine dämliche Frage: Muss das in den Head oder in den Body. Es funzt in beidem nicht!

        Die Einbindung der externen Datei sollte in den Head, aber sie dürfte theoretisch auch im body sein.

        Grüße,

        Christian

  2. Hallo,

    Kann ich externe JavaScripts in eine HTML Datei einbinden, die dann von allen Browsern gelesen werden?

    Falls ja, wie funzt das?
    Denn
    <SCRIPT LANGUAGE="JavaScript" SRC="resize.js"></SCRIPT>
    mit zusätzlich <body onload="*"> funktioiert bei mir irgendwie nicht.

    eigentlich müsste es so, wie oben steht mit <script></script> gehen. Was bedeutet onLoad="*"? Ausserdem würde ich statt
    <script language="JavaScript" src="resize.js"></script>
    <script type="text/javascript" src="resize.js"></script>
    verwenden.

    MfG Dmitri