Anzeige:
Seite 2 von 2 ErsteErste 12
Ergebnis 16 bis 21 von 21

Thema: Javascript: Fliegendes Image geht unter Netscape nicht - warum?

  1. #16
    Registrierter Benutzer
    Registriert seit
    12.10.2004
    Beiträge
    33

    Question Fehler beim Datenübermitteln

    Also Leute,

    wenn ich folgende Seite mit dem Script aufrufe ...

    HTML-Code:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
    
    <html>
      <head>
    
        <title>HOF-Apotheke</title>
        <meta name="GENERATOR" content="Quanta Plus">
        <link rel="stylesheet" type="text/css" href=
        "css/stylesheet.css">
        
    <script src="cbe/cbe_core.js"  type="text/javascript"></script>
    <script src="cbe/cbe_event.js" type="text/javascript"></script>
    <script src="cbe/cbe_slide.js" type="text/javascript"></script>
    <script src="cbe/cbe_util.js"  type="text/javascript"></script>
    <script src="cbe/cbe_debug.js" type="text/javascript"></script>
        <script type="text/javascript" language="JavaScript">
    <!--
    
    var ele1, ele2, ele3;
    function windowOnload() {
      init();
    }
    function init() {
      ele1 = document.getElementById('ele1').cbe;
      ele1.moveTo('center');
      ele1.moveBy(-250,-50);
      ele1.show();
      ele1.sequence = new Array(
        "ellipse(100,200,0,2000,0,-360)",
        "ellipse(100,200,0,2000,0,360)",  
        "ellipse(100,50,2, 4000,0,1440)",
        "ellipse(200,100,-2,4000,0,-1440)"
      );
      ele2 = document.getElementById('ele2').cbe;
      ele2.moveTo('center');
      ele2.moveBy(250,-50);
      ele2.show();
      ele2.sequence = new Array(
        "ellipse(100,200,0,2000,0,-360)",
        "ellipse(100,200,0,2000,0,360)",
        "ellipse(100,200,0,4000,0,-720)",
        "ellipse(100,200,0,4000,0,720)"
      );
      ele3 = document.getElementById('ele3').cbe;
      ele3.moveTo('center');
      ele3.show();
      ele3.sequence = new Array(
        "ellipse(50,100,0,5000,90,450)",
        "ellipse(50,100,0,5000,-90,-450)"
      );
      document.forms['form1'].txtX.focus();
      document.forms['form1'].txtX.select();
    }
    function handleSubmit() {
      ele1.ellipse(
        document.forms.form1.txtX.value,
        document.forms.form1.
    txtY.value,
        document.forms.form1.txtI.value,
        document.forms.form1.txtT.value,
        document.forms.form1.txtS.value,
        document.forms.form1.txtP.value
      );
      document.forms['form1'].txtX.focus();
      document.forms['form1'].txtX.select();
      return false;
    }
    function startCycle() {
      ele1.startSequence();
      ele2.startSequence();
      ele3.startSequence();
    }
    function stopCycle() {
      ele1.stopSequence();
      ele2.stopSequence();
      ele3.stopSequence();
    }
    //-->
        </script>
    <script type="text/javascript">
    <!--
    function windowOnload() {
      startCycle();
    }
    // -->
    </script>    
    
      </head>
    
      <body onload="startCycle()">
        <table width="100%" border="0" align="center">
          <tr>
            <td height="30">&nbsp;</td>
          </tr>
    
          <tr>
            <td align="center" height="425">
    	 <div id="ele1" class="clsCBE"><img src="images/krongold.gif" border="0"></div>
             <div id="ele2" class="clsCBE"><img src="images/krongold.gif" border="0"></div>
             <div id="ele3" class="clsCBE"><IMG src="images/log_hor.gif" border="0"></div>
            </td>
          </tr>
    
        </table>
      </body>
    </html>
    ..., dann bringt mir die JavaScript-Konsole folgende Fehlermeldung:


    Fehler: ele1 has no properties
    Quelldatei: http://eagle/hofapotheke/home.html
    Zeile: 84
    Ergo findet mein Script die id="ele1" in dem HTML-Tag <img> weiter unten nicht, weil die Seite noch nicht geladen ist. Wohingegen es das <a> raffelt, weil die Seite ja bereits geladen ist.

    Also: Wie richte ich den <BODY onload="startCycle()"> ein, dass die Info's beim Laden bereits mit übermittel werden?

    MfG

    Archilles

  2. #17
    Registrierter Benutzer Avatar von BlueJay
    Registriert seit
    27.08.2004
    Beiträge
    825
    Zitat Zitat von Archilles
    Hallo BlueJay,
    ich weiß jetzt gar nicht was der Browservergleich noch soll. Obiges Script flattert prima.
    Mir geht's jetzt nur noch um obiges Problem des Startens während Seitenaufrufs - siehe oben.
    Archilles
    Hm, da der Teil, den du gepostet hattest, unvollständig war, habe ich versucht, mir den Rest anzuschauen, ohne Erfolg!

    Dann eben die Webseite aufgerufen, und Mozilla hat im Script diesen Fehler gefunden, der durchaus den Start der Animation bei onload verhindert.

    Sollte die Seite nicht mehr aktuell sein, hilft vielleicht ein Link auf die derzeit aktuelle Seite. Sorry, du bindest etlichen zusätzlichen Kram ein, wo mein Browser schon vorher "aussteigt", wenn er nur das gepostete Stück bekommt.

    Wenn nur onload nicht durchgeführt wird, tritt der Fehler nicht bei der Animation selbst, sondern beim Initialisieren auf.

    so long,
    BlueJay

  3. #18
    Registrierter Benutzer
    Registriert seit
    27.08.2002
    Beiträge
    337
    Hinweise zu "onload" findest du unter:
    http://www.hftonline.com/forum/showt...d+windowOnload

  4. #19
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Zitat Zitat von BlueJay
    Abfrage auf IE4,5:
    if (document.all) ...

    Abfrage auf DOM1:
    if (document.getElementById) ...
    In diesem Fall wäre wahrscheinlich die andere Reihenfolge anzuraten, also zuerst auf getElementById zu prüfen, dann erst auf die Ausnahme document.all
    Manche Autoren benutzen dass nämlich andersrum und "erkennen" dann KHTML basierte Browser als IE

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  5. #20
    Registrierter Benutzer Avatar von BlueJay
    Registriert seit
    27.08.2004
    Beiträge
    825
    Zitat Zitat von anda_skoa
    In diesem Fall wäre wahrscheinlich die andere Reihenfolge anzuraten, also zuerst auf getElementById zu prüfen,
    Da hast du recht, mittlerweile ist DOM1 Standard.
    Und mit Browsern, die das Erkennen eines Elements türken, es dann trotzdem (noch) nicht beherrschen, bich ich auch schon reingefallen (Opera 5). Ist in meinen Augen aber ein Browserproblem.

    (Fast) ganz korrekt wäre es, vor jeder Verwendung auf das Element zu prüfen, was man gerade benutzen will.

    -

    Und da sagt man, mit Umsetzen des DOM1 wird alles einfacher! Da scheint ja schon wieder ein ganzer Browserzoo da draussen!

    so long,
    BlueJay

  6. #21
    Registrierter Benutzer
    Registriert seit
    12.10.2004
    Beiträge
    33

    Smile

    Also erstmal vielen Dank für die regen, informativen Beiträge.

    Ich habe die Fehler selber gesehen und das Warum, weshalb onload im BODY-Tag nicht funktioniert, steht in einer 32-seitigen Doku in Englisch versteckt. Also das Crossover-Script läuft mit Attributen wie onclick oder mouseover, aber nicht onload.

    Somit habe ich meine Lösung mit einem <A>-tag um den Gesamtkomplex gefunden.

    Jedenfalls noch einmal vielen Dank und Entschuldigung, dass ich ein Weilchen diesen Thread nicht besucht hatte. Die Prioritäten lagen bei anders.

    MfG

    Archilles

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •