niemalsmeister: Eingestellte Verhalten bei Hotspots funktionieren nicht

Hallo zusammen,

ich (Anfänger) habe auf einer Seite ein Bild in einen Div-Container plaziert und dieses mit diversen Hotspots versehen (ich arbeite mit Dreamweaver CS3). Die verlinkten Hotspots funktionieren einwandfrei, aber ich habe einen mit dem Verhalten "mouseover" und "einblenden" versehen um ein Bild (in einem Div) einzublenden wenn man über den Hotspot fährt. Leider tut sich absolut nichts, außer dass unten immer eine Meldung dass meine Seite Fehler enthält erscheint. Welche Fehler kann ich bei Dreamweaver allerdings nicht erkennen. Nun das Komische: wenn ich eine komplett leere neue html-Seite anlege und ein Bild einfüge, Hotspot drauflege und oben erwähnten Vorgang wiederhole, funktioniert alles einwandfrei!?!?! Es handelt sich um den Hotspot "Lichtenberg" am Ende.

Liegt irgendwo im Code etwas, dass die Ausführung unterdrückt?? Kann jemand einen Fehler erkennen???

Ist leider nicht online!

Vielen Dank im voraus. Falls weiterer Code erforderlich ist, bitte meolden.

``</div>
<div id="apDiv2">
  <div align="center"></div>
  <p><img src="../Bilder/Hypersnaps Mibio/Organigramm.jpg" alt="Organigramm" name="Image1" width="949" height="586" hspace="30" border="0" usemap="#Map" id="Image1" />
    <map name="Map" id="Map">
      <area shape="rect" coords="426,356,586,402" href="endo1.html" alt="Endotoxins" />
      <area shape="rect" coords="244,272,403,363" href="bbnon1.html" alt="BK non" />
      <area shape="rect" coords="422,274,581,320" href="mr1.html" alt="Anti-microbial" />
      <area shape="rect" coords="240,401,400,447" href="ident1.html" alt="Identification" />
      <area shape="rect" coords="422,438,582,485" href="kons1.html" alt="Antimocrobial eff." />
      <area shape="rect" coords="240,484,399,531" href="container.html" alt="Container" />
      <area shape="rect" coords="14,332,192,400" href="bbpar1.html" alt="parenterals support" />
      <area shape="rect" coords="13,439,173,484" href="sterility1.html" alt="Sterility" />
      <area shape="rect" coords="603,262,762,345" href="media1.html" alt="Media preparation" />
    <area shape="rect" coords="13,188,173,235" href="#" alt="Lichtenberg" onmouseover="MM_showHideLayers('apDiv3','','show')" />
    </map>
  </p>
  <p>&nbsp;</p>
  <div align="center"></div>
  <p>&nbsp;</p>
</div>
<div id="apDiv3"></div>

  1. Lieber niemalsmeister,

    ich lehne den Gebrauch des Dreamweavers für mich ab. Bitte überlese deshalb eventuelle Aussagen meinerseits, die das Programm schlecht machen könnten.

    ich (Anfänger) habe auf einer Seite ein Bild in einen Div-Container plaziert

    Das <div>-Element mit der id "apDiv2".

    und dieses mit diversen Hotspots versehen (ich arbeite mit Dreamweaver CS3).

    Hotspots. Ja. Dreamweaver kennt Hotspots - soweit nichts neues.

    Die verlinkten Hotspots funktionieren einwandfrei, aber ich habe einen mit dem Verhalten "mouseover" und "einblenden" versehen um ein Bild (in einem Div) einzublenden wenn man über den Hotspot fährt.

    Das soll später im Browser ein JavaScript erledigen. Die betreffende Funktion in Deinem Quelltext lautet "MM_showHideLayers", die Du im Eventhandler mit "MM_showHideLayers('apDiv3','','show')" aufrufst.

    Da Du aber den Quelltext dieser Funktion nirgends aufführst, kann auch niemand mit Sicherheit sagen, was da genau schief läuft.

    Leider tut sich absolut nichts, außer dass unten immer eine Meldung dass meine Seite Fehler enthält erscheint.

    Du bist mir aber ein ganz Schlauer. Warum nennst Du denn nicht den kompletten Wortlaut der Fehlermeldung, verheimlichst uns, dass Du die Seite ausschließlich im Internet-Explorer testest (was Du schleunigst durch Tests im Firefox ergänzen solltest!!) und auf welchen Code-Abschnitt sich der IE mit seiner Fehlermeldung beruft?

    Welche Fehler kann ich bei Dreamweaver allerdings nicht erkennen.

    Klar, der ist ja auch kein Browser!

    Nun das Komische: wenn ich eine komplett leere neue html-Seite anlege und ein Bild einfüge, Hotspot drauflege und oben erwähnten Vorgang wiederhole, funktioniert alles einwandfrei!?!?! Es handelt sich um den Hotspot "Lichtenberg" am Ende.

    Das <div>-Element, das von dem mouseover-Effekt verändert werden soll ist laut Deinem Quelltext leer:

    <div id="apDiv3"></div>

    Ist das vielleicht der Grund, dass Dein Script scheitert? Hätte da nicht ein Bild darinnen sein sollen? Ist in Deiner komplett leeren neuen html-Seite ein Bild darin?

    Liegt irgendwo im Code etwas, dass die Ausführung unterdrückt?? Kann jemand einen Fehler erkennen???

    Nicht mit den von Dir bisher angegebenen Quellen.

    Liebe Grüße aus Ellwangen,

    Felix Riesterer.

    --
    ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
  2. Lieber Felix Riesterer! Erstmal vielen Dank für die Antwort. Bin leider keinen Schritt weiter gekommen. Hier kommt noch der Code im Head:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">

    <head>
    <script language='JAVASCRIPT' type='text/javascript'>
    <!--
    var win=null;
    function NewWindow(mypage,myname,w,h,pos,infocus){
    if(pos=="random"){myleft=(screen.width)?Math.floor(Math.random()*(screen.width-w)):100;mytop=(screen.height)?Math.floor(Math.random()*((screen.height-h)-75)):100;}
    if(pos=="center"){myleft=(screen.width)?(screen.width-w)/2:100;mytop=(screen.height)?(screen.height-h)/2:100;}
    else if((pos!='center' && pos!="random") || pos==null){myleft=0;mytop=20}
    settings="width=" + w + ",height=" + h + ",top=" + mytop + ",left=" + myleft + ",scrollbars=no,location=no,directories=no,status=no,menubar=no,toolbar=no,resizable=no";win=window.open(mypage,myname,settings);
    win.focus();}
    /
    function MM_preloadImages() { //v3.0
      var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
        var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
        if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
    }
    function MM_showHideLayers() { //v9.0
      var i,p,v,obj,args=MM_showHideLayers.arguments;
      for (i=0; i<(args.length-2); i+=3)
      with (document) if (getElementById && ((obj=getElementById(args[i]))!=null)) { v=args[i+2];
        if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
        obj.visibility=v; }
    }
    //-->
    </script>

    1. Lieber niemalsmeister,

      interessant, dass Du Dir selbst antwortest...

      Hier kommt noch der Code im Head:

      Ein Link zu einer Testseite im Internet wäre mir in diesem Fall lieber gewesen. Aber schauen wir einmal.

      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
      <html xmlns="http://www.w3.org/1999/xhtml">

      <head>
      <script language='JAVASCRIPT' type='text/javascript'>

      Soweit keine Auffälligkeiten. Das language-Attribut kannst Du getrost in die Tonne treten, das ist ein Relikt aus Uraltzeiten.

      <!--
      var win=null;
      function NewWindow(mypage,myname,w,h,pos,infocus){
      if(pos=="random"){myleft=(screen.width)?Math.floor(Math.random()*(screen.width-w)):100;mytop=(screen.height)?Math.floor(Math.random()*((screen.height-h)-75)):100;}
      if(pos=="center"){myleft=(screen.width)?(screen.width-w)/2:100;mytop=(screen.height)?(screen.height-h)/2:100;}
      else if((pos!='center' && pos!="random") || pos==null){myleft=0;mytop=20}
      settings="width=" + w + ",height=" + h + ",top=" + mytop + ",left=" + myleft + ",scrollbars=no,location=no,directories=no,status=no,menubar=no,toolbar=no,resizable=no";win=window.open(mypage,myname,settings);
      win.focus();}
      /

      So, hier wird mir etwas schwummrig. Dieser Code wird vom (Alp-)Träumeweber verbrochen, oder? Ich sehe in Deinem vorherigen Code keine Verwendung der Funktion "NewWindow" - warum steht sie in Deinem Dokument? Außerdem sehe ich an ihrem Ende einen bösen Syntax-Fehler: Ein einzelner Slash nach der letzten Funktionszeile. Der muss _unbedingt_ weg! Hier versucht der JavaScript-Interpreter etwas zu verstehen und scheitert, da ein einzelner Slash ein Divisions-Zeichen ist, welches hier völlig ohne Kontext zwangsläufig zu einem Fehler führt. Ein doppelter Slash (also //) hingegen verwandelt den Rest der Zeile in einen Kommentar. Das wäre von der Syntax her wieder in Ordnung, und ich vermute, dass das hier auch einst ein Kommentar hat sein sollen (vermutlich eine Versions-Anzeige, wie bei den anderen Funktionen auch), der aber irgendwie verstümmelt wurde.

      function MM_preloadImages() { //v3.0
        var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
          var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
          if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
      }

      Auch für diese Funktion sehe ich keine Verwendung. Warum steht sie in Deinem Dokument? Jede Funktion die Du nicht nutzt, könnte zu Deinen "Fehlern" beitragen, die angeblich vom Browser angezeigt werden...

      function MM_showHideLayers() { //v9.0
        var i,p,v,obj,args=MM_showHideLayers.arguments;
        for (i=0; i<(args.length-2); i+=3)
        with (document) if (getElementById && ((obj=getElementById(args[i]))!=null)) { v=args[i+2];
          if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
          obj.visibility=v; }
      }
      //-->
      </script>

      So, jetzt kommen wir der Sache schon näher. Das ist die Funktion, die Du tatsächlich mit Deinem mouseover-Event benutzt. Ich sehe in dieser Funktion keinen Syntax-Fehler (was nicht verwundert, da sie von Dreamweaver erstellt wurde). Daher kann ich nur vermuten, dass wegen obigem Slash nach der NewWindow-Funktion der JavaScript-Interpreter komplett streikt und deswegen keine der Funktionen mehr kennen will - und deshalb rennt Dein mouseover ins Leere.

      Liebe Grüße aus Ellwangen,

      Felix Riesterer.

      --
      ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)