bugfix: onclick Netscape - BITTE! Ich weiß nicht mehr weiter!

Folgendes Beispiel:

<html>
<head>
<title></title>
</head>
<script LANGUAGE="JavaScript">
<!--
function init(){
   stest = new Image();stest.src = "images/chat0.jpg";
   if (document.layers) {
      document.test_lay.document.open();
      document.test_lay.document.write('<IMG SRC="'+stest.src+'" NAME="test_img" HEIGHT=60 WIDTH=90>');
      document.test_lay.top  = 100;
      document.test_lay.left  = 100;
      document.test_lay.document.close();  
   } else if (document.all) {
      document.all.test_div.innerHTML = '<IMG SRC="'+stest.src+'" NAME="test_img" HEIGHT=60 WIDTH=90>'
      with (test_div.style) {
         left =100;top =100;
      }  
   }  
}

function testfunc (x){
   alert(x);
}
//-->
</script>

<body id=body_id onload="init()">

<DIV id="test_div" style="position:absolute; left:0; top:-200; z-index:0"; onclick="testfunc(0)">
  <LAYER name="test_lay" onclick="testfunc(0)"></LAYER>
</DIV>

</body>
</html>

Im Internet Explorer funktioniert es, er steigt in die function testfunc ein und gibt "0" aus. Aber Im Netscape tut sich überhaupt nichts! Was hab ich falsch gemacht?

  1. Hi!

    Immer einen Versuch wert: die Eventhandler richtig schreiben. Also onClick (nicht etwa onclick) und onLoad (nicht etwa onload).

    Grüße,

    Utz

    1. Hi!

      Immer einen Versuch wert: die Eventhandler richtig schreiben. Also onClick (nicht etwa onclick) und onLoad (nicht etwa onload).

      Grüße,

      Utz

      Das wars leider nicht ;-((
      Trotzdem Danke!

      1. Ok ok,

        hab's mir doch noch mal genauer angeschaut - also:

        Kann gar nicht gehen. Der Eventhandler onClick ist weder in <DIV> noch in <LAYER> zugelassen - kann keinen Effekt haben. Näheres dazu, wo welcher Eventhandler erlaubt ist, findest Du unter <../../tebj.htm>. Für onClick heißt das - entweder in Links oder in Imagemaps.
        Bau da also nen von mir aus toten Link rein, beleg den mit der Funktion, und die Sache läuft.
        Und dann - immer an die Syntax denken und JS-Zeilen mit ; abschließen, das geht auch gern in die Hose.

        Grüße,

        Utz

        1. Ok ok,

          hab's mir doch noch mal genauer angeschaut - also:

          Kann gar nicht gehen. Der Eventhandler onClick ist weder in <DIV> noch in <LAYER> zugelassen - kann keinen Effekt haben. Näheres dazu, wo welcher Eventhandler erlaubt ist, findest Du unter <../../tebj.htm>. Für onClick heißt das - entweder in Links oder in Imagemaps.
          Bau da also nen von mir aus toten Link rein, beleg den mit der Funktion, und die Sache läuft.
          Und dann - immer an die Syntax denken und JS-Zeilen mit ; abschließen, das geht auch gern in die Hose.

          Grüße,

          Utz

          Hallo, wieder andy hier.

          Ist ja alles gut und schön. Aber bei mir funzt es trotzdem nur im IE
          Hier mal mein Listing:

          <html>

          <head>
          <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
          <meta name="GENERATOR" content="Microsoft FrontPage 4.0">
          <meta name="ProgId" content="FrontPage.Editor.Document">
          <title>Kapital Einsatz</title>
          </head>
          <script language=javascript>
             function zinsen(laufzeit, zinssatz, kapital)
              {
                var ekapital;
                ekapital=kapital*zinssatz*laufzeit/100/360;
              
              
              if (ekapital> 100)
                document.write("Sie haben aber gespart",ekapital);
                    else
                document.write("Na, es wird noch", ekapital);
                      }
                
          </script>

          <body>

          <form method="post"   <p name="zinsform">
          Kapital Einsatz:<input type="text" name="kapital" size="20">
            <p>Laufzeit:           <input type="text" name="laufzeit" size="20"></p>
            <p>Zinssatz            <input type="text" name="zinssatz" size="20"></p>
            <p><input type="button" value="Berechnen"
             onClick="zinsen(document.zinsform.kapital.value,document.zinsform.zinssatz.value,zinsform.laufzeit.value)" >
            <input type="reset" value="Zurücksetzen" name="B2"></p>
          </form>

          </body>

          </html>

          1. Hier kommt meine letzte Wortmeldung zu dem Thema:

            document.write("Sie haben aber gespart",ekapital);
                      else
                  document.write("Na, es wird noch", ekapital);

            Müsste natürlich document.write("Sie haben aber gespart" + ekapital);
            und document.write("Na, es wird noch" + ekapital); heißen.

            Insgesamt müsstest Du wahrscheinlich das Script mit Hilfe des NN mal gründlich debuggen, ist durchaus möglich, dass es noch weitere Syntaxfehler gibt, die ich auf die Schnelle nicht gesehen habe.

            Grüße,

            Utz

  2. Folgendes Beispiel:

    <html>
    <head>

    »»  <title></title>

    </head>
    <script LANGUAGE="JavaScript">
    <!--
    function init(){
       stest = new Image();stest.src = "images/chat0.jpg";
       if (document.layers) {
          document.test_lay.document.open();
          document.test_lay.document.write('<IMG SRC="'+stest.src+'" NAME="test_img" HEIGHT=60 WIDTH=90>');
          document.test_lay.top  = 100;
          document.test_lay.left  = 100;
          document.test_lay.document.close();  
       } else if (document.all) {
          document.all.test_div.innerHTML = '<IMG SRC="'+stest.src+'" NAME="test_img" HEIGHT=60 WIDTH=90>'
          with (test_div.style) {
             left =100;top =100;
          }  
       }  
    }

    function testfunc (x){
       alert(x);
    }
    //-->
    </script>

    <body id=body_id onload="init()">

    <DIV id="test_div" style="position:absolute; left:0; top:-200; z-index:0"; onclick="testfunc(0)">
      <LAYER name="test_lay" onclick="testfunc(0)"></LAYER>
    </DIV>

    </body>
    </html>

    Im Internet Explorer funktioniert es, er steigt in die function testfunc ein und gibt "0" aus. Aber Im Netscape tut sich überhaupt nichts! Was hab ich falsch gemacht?

    Hi, ich hab leider dasselbe Problem. Und ich bin sicher kein Laie. Also, wer kann bitte helfen?

  3. Hallo,

    könnte es sein, daß das falsch plazierte Semikolon hinter dem style vom IE akzeptiert wird, von NS
    aber nicht?

    falsch:

    <DIV id="test_div" style="position:absolute; left:0; top:-200; z-index:0"; onclick="testfunc(0)">

    richtig:

    <DIV id="test_div" style="position:absolute; left:0; top:-200; z-index:0;" onclick="testfunc(0)">
      <LAYER name="test_lay" onclick="testfunc(0)"></LAYER>
    </DIV>

    Reinhard.

  4. so funktioniert es jedenfalls

    <html>
    <head>
    <title></title>
    </head>
    <script LANGUAGE="JavaScript">
    <!--
    function init(){
       stest = new Image();stest.src = "images/chat0.jpg";
       if (document.layers) {
          document.layers.testlay.document.open();
          document.layers.testlay.document.write('<a href="javascript:testfunc(0)"><IMG SRC=" + stest.src + " NAME="test_img" HEIGHT=60 WIDTH=90></a>');
          document.layers.testlay.top  = 100;
          document.layers.testlay.left  = 100;
          document.layers.testlay.document.close();  
       } else if (document.all) {
          document.all.testlay.innerHTML = '<IMG SRC="'+stest.src+'" NAME="test_img" HEIGHT=60 WIDTH=90>';
          with (testlay.style) {
             left =100;top =100;
          }  
       }  
    }

    function testfunc (x){
       alert(x);
    }
    //-->
    </script>

    <body onload="init()">
    <DIV id="testlay" style="position:absolute; left:0; top:200; z-index:0;" onclick="testfunc(0)"></DIV>
    </body></html>

    Gruesse
    Wilhelm

  5. Hallo!

    Mal etwas Grundsätzliches zu Event-Handlern in Netscape:

    Netscape interpretiert Event-Handler nur in wenigen Tags, wenn man manche sachen darstellen möchte muß man umwege gehen, zum Beispiel auch bei onClick.

    Beispiel:

    <img src="bild.gif" onClick="alert('Sie haben geklickt')">
    funzt zwar im IE aber NN sagt nichts.
    da muß man den <a> tag verwenden:

    <a href="#" onClick="alert('Sie haben geklickt')"><img src="bild.gif"></a>

    So dürfte es auch in deinem Beispiel funktionieren.

    Thilo