Martin: Javascript/«div»-tag und Netscape

Hi Forum,

ich habe gerade angefangen, HTML etwas zu verstehen.
Nachdem ich mir nun etliche Seiten im Quelltext angeschaut bzw. die Elemente daraus übernommen habe, habe ich meine erste Seite erstellt.

Soweit, so gut...

Problem 1:Meine Menüleiste habe ich mit Rollover-Images (nach dem SELFHTML-Beispiel) in Form einer Tabelle realisiert. Um nun diese Tabelle so nahe wie möglich an den Fensterrand des Browsers zu bringen, ist sie in ein <div>-tag eingebettet. Mit IEP 5.0 funktioniert alles bestens. Leider ignoriert Navigator 4.51 ALLE Javascripts innerhalb des <div>-Tags, und zwar unabhängig davon, ob es sich um Scripts in HTML oder Script-Elemente in HTML-Tags (als Funktionsaufrufe) handelt. Eine Schachtelung <div><layer><table>...</.></.></.> bringt auch nichts. Die Lösung ist vermutlich einfach, ich habe aber durch Web-Suche noch nichts gefunden.

Problem 2: Aus Gag habe ich probiert, ob ich das "Klauen" von Grafiken verhindern kann (nein, ich bin kein Egoist! Ich will nur verstehen, was geht und was nicht).

<script ...> function click() { if (event.button==2) {alert('Gefällt Ihnen das Design?\n\nSchreiben Sie mir für nähere Informationen!'); } }document.onmousedown=click // --></script>

unterdrückt mir im IEP5.0 nach Ausgabe der Meldung das Öffnen des Pulldown-Menüs mit der Option "Grafik speichern unter...".
Im Navigator (hier event.which==3)kommt zwar die Meldung, aber auch das Pulldownmenü. Ist so etwas hier prinzipiell unrealisierbar??

Ist wohl etwas viel...

Danke im voraus,

Martin

  1. Problem 1:Meine Menüleiste habe ich mit Rollover-Images (nach dem SELFHTML-Beispiel) in Form einer Tabelle realisiert. Um nun diese Tabelle so nahe wie möglich an den Fensterrand des Browsers zu bringen, ist sie in ein <div>-tag eingebettet. Mit IEP 5.0 funktioniert alles bestens. Leider ignoriert Navigator 4.51 ALLE Javascripts innerhalb des <div>-Tags, und zwar unabhängig davon, ob es sich um Scripts in HTML oder Script-Elemente in HTML-Tags (als Funktionsaufrufe) handelt.

    Hallo Martin schaue mal in diesen Thread aus dem Archiv, da wurde dieses Thema behandelt.

    <../../sfarchiv/1999_2/t04589.htm>

    Viele Grüße

    Antje

    1. Hi Antje,

      erst einmal herzlichen Dank für diese wirklich schnelle Antwort :-))

      Also, ich habe Euren Dialog studiert und versucht umszusetzen. Klappt aber noch nicht ganz.

      Ich zitiere mal meine Code:

      <script language="JavaScript">
      <!--
      Shade1 = new Image();
      Shade1.src = "../Grafik/Buttons/Oval/B_HomeShade.gif";
      Light1 = new Image();
      Light1.src = "../Grafik/Buttons/Oval/B_HomeLight.gif";

      Shade2 = new Image();
      Shade2.src = "../Grafik/Buttons/Oval/B_CatalogShade.gif";
      Light2 = new Image();
      Light2.src = "../Grafik/Buttons/Oval/B_CatalogLight.gif";

      /*noch ein paar Bilder*/

      function SwapImage(ImageNr,ImageObject)
      {
      if (navigator.appCodeName == 'Netscape')
         document.Layer1.document.images[ImageNr].src = ImageObject.src;
      else window.document.images[ImageNr].src = ImageObject.src;
      }

      //-->
      </script>

      <body>
      <div id="Layer1" style="position:absolute; left:1px; top:50px; width:125px; height:231px; z-index:1">
      <table width="130" border="1" height="208" cellpadding=0>
          <tr align=right>
            <td><a href="Start.html" onMouseOver="SwapImage(0,Light1)" onMouseOut="SwapImage(0,Shade1)" target="MainFrame"><img border="0" src="../Grafik/Buttons/Oval/B_HomeShade.gif" width="86" height="32"></a><img src="../Grafik/Abstand1.gif" height=1 width=28></td>
          </tr>
           <tr align=right>
            <td><a href="MenueExp.html" onMouseOver="SwapImage(2,Light2)" onMouseOut="SwapImage(2,Shade2)" target="_self"><img border="0" src="../Grafik/Buttons/Oval/B_CatalogShade.gif" width="86" height="32"></a><img src="../Grafik/Abstand1.gif" height=1 width=10></td>
          </tr>
      .......</div>

      Also, ich habe die Tabelle mit allen Buttons in EINEM <div>-Tag. Die Bildernummerierung müsste auch stimmen.
      Trotzdem kein Rollover-Effekt im Navigator (IEP klappt).

      Für den Fall, daß die Lösung wirklich zu einfachst ist, bitte ich jetzt schon um Nachsicht. Ich fange halt gerade erst an....

      Lieb Grüße,
      Martin

      1. Hallo Martin,

        »»  if (navigator.appCodeName == 'Netscape')

        hier liegt dein Problem, navigator.appCodeName liefert Mozilla und nicht Netscape, deshalb suchte der Navi immer den else Zweig auf.

        richtig: if (navigator.appName == 'Netscape')

        <../../tech.htm#a2>

        Viele Grüße

        Antje

        1. Hi Antje,

          tja, meine Freude hat sich wieder etwas getrübt.

          Mein Freund, für den ich die Page mache, hat mir gerade mitgeteilt, daß die Page bei ihm nicht so funktioniert.
          Eigenartig, ich hae alles vorher bei mir getestet. Selbe Borwserversion (N 4.51), selbe Bildschirm- und Farbauflösung.
          Bei ihm funktioniert kein einziger Rollovereffekt.
          Ich kenne mich mit den Browserbugs nicht so aus, aber meinst Du, daß so etwas dann ein lokales Problem ist (sprich, einfach den Browser neu installieren). Denn eigentlich sollte doch der gleiche Browser diesselben HTML-Daten identisch umsetzen, oder?

          Bei mir stimmt aber mit einem weiteren Rollover auf derselben Menüseite im N4.51 auch etwas nicht. Es ist in einem anderen <div> eingebettet, aber die Zuweisung stimmt prinzipiell (ich übergebe Divnname, ImageNr und ObjectNr.) Das Rollover funktioniert exakt solange, wie ich das die Größe des Browserfensters nicht verändere. Sobald ich das aber mache, ist der Effekt verschwunden (das Rollover selbst ist eine Gianimation, dessen letztes Bild dem Hintergrund entspricht). Wenn ich die Animation in eu#inem neuen Fenster anschaue, stimmt der Dateiname, aber ich sehe eben nur noch diesen letzten Frame). Komisch...

          Vielen Dank im voraus

          einen schönen Abend

          Grüße, martin

          1. Mein Freund, für den ich die Page mache, hat mir gerade mitgeteilt, daß die Page bei ihm nicht so funktioniert.
            Eigenartig, ich hae alles vorher bei mir getestet. Selbe Borwserversion (N 4.51), selbe Bildschirm- und Farbauflösung.

            Das klingt eigentlich nach einen Browserproblem. Entweder ist JS abgeschaltet oder eine Neuinstallation ist fällig.

            Bei mir stimmt aber mit einem weiteren Rollover auf derselben Menüseite im N4.51 auch etwas nicht. Es ist in einem anderen <div> eingebettet, aber die Zuweisung stimmt prinzipiell (ich übergebe Divnname, ImageNr und ObjectNr.) Das Rollover funktioniert exakt solange, wie ich das die Größe des Browserfensters nicht verändere.

            Der Navi hat ein Problem beim Ändern der Fenstergröße. Er vergißt dann gesetzte Variablen etc. Kontolliere auch ob alle Tags geschlossen sind, sehr häufig liegt dort schon ein Grund für Fehler.

            Viele Grüße

            Antje

      2. Hi Antje,

        schon wieder ich (Ron Sommer - sag' Danke!)

        nachdem ich "(navigator.appCodeName == 'Netscape')" in
        "(navigator.appName == 'Netscape')" verwandelt habe FUNKTIONIERT ES!!!!!!!!
        HURRRAAAAAA!!!!!

        Danke noch mal,

        werde jetzt wohl häufiger kommen...;-))

        Grüße, Martin

  2. Problem 2: Aus Gag habe ich probiert, ob ich das "Klauen" von Grafiken verhindern kann (nein, ich bin kein Egoist! Ich will nur verstehen, was geht und was nicht).

    <script ...> function click() { if (event.button==2) {alert('Gefällt Ihnen das Design?\n\nSchreiben Sie mir für nähere Informationen!'); } }document.onmousedown=click // --></script>

    unterdrückt mir im IEP5.0 nach Ausgabe der Meldung das Öffnen des Pulldown-Menüs mit der Option "Grafik speichern unter...".
    Im Navigator (hier event.which==3)kommt zwar die Meldung, aber auch das Pulldownmenü. Ist so etwas hier prinzipiell unrealisierbar??

    Selbst wenn das in Netscpe klappen würde, helfen würde Dir das nicht...
    Nachwievor kann sich jeder den Quellcode anschauen und nach der Zeile mit dem Bild suchen und den kompletten Namen in die URL Zeile eintragen. Du machst es dem *Dieb* nur etwas schwerer :)

    Bye
    Wolfgang