tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
2
ZUGRIFFE
288
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    friendofmisery friendofmisery ist offline Mitglied
    Registriert seit
    Jan 2002
    Beiträge
    20
    Hallo zusammen,

    mein Problem:
    Bei einem MouseOver über ein space.gif sollen ein Navigationslayer und ein Hintergrundbildlayer (unter der Nav), über die Funktion auf() bzw. auf_4() für die 4erBrowserversionen aufpoppen.


    Folgender Code steht im HEAD:

    <SCRIPT LANGUAGE=JavaScript>
    <!--//

    isNS4 = (document.layers) ? true : false;
    isIE4 = (document.all && !document.getElementById) ? true : false;
    isIE5 = (document.all && document.getElementById) ? true : false;
    isNS6 = (!document.all && document.getElementById) ? true : false;

    function auf()
    {
    layer = document.getElementById("bg");
    layer.style.visibility = "visible";
    layer = document.getElementById("navi");
    layer.style.visibility = "visible";
    }

    function zu()
    {
    layer = document.getElementById("bg");
    layer.style.visibility = "hidden";
    layer = document.getElementById("navi");
    layer.style.visibility = "hidden";
    }

    function auf_4()
    {
    code = 'document.bg.visibility = "visible"';
    code = 'document.navi.visibility = "visible"';
    e = evalPlus(code);
    }

    function zu_4()
    {
    code = 'document.bg.visibility = "hidden"';
    code = 'document.navi.visibility = "hidden"';
    e = evalPlus(code);
    }

    function evalPlus (dacode)
    {
    if (navigator.appName != "Netscape")
    {
    dacode = dacode.replace('document.', 'document.all.');
    dacode = dacode.replace('.visibility', '.style.visibility');
    }
    rv = eval (dacode);
    return (rv);
    }

    //-->
    </script>


    Das ist der Aufruf über das space.gif:

    <div style="position:absolute;top:0;left:0;width:170;height:100%;z-index:10;">
    <script language=javascript>
    <!--//
    if (isNS4 || isIE4) document.write('<a href=# onMouseOver=auf_4()><img src=[%Template%]/images/space.gif border=0 width=170 height=100%></a>');
    else document.write('<a href=# onMouseOver=auf()><img src=[%Template%]/images/space.gif border=0 width=170 height=100%></a>');
    //-->
    </script>
    </div>


    So sehen die DIVs im BODY aus:

    <script language=javascript>
    <!--//
    if (isNS4 || isIE4) document.write('<div id=bg style=margin:0px0px0px0px;visibility:hidden;position:absolute;top:0px;left:170px;z-index:2;width:420;height:100%;background-color:#FFFFFF; onMouseOut=zu_4() onMouseOver=auf_4()>');
    else document.write('<div id=bg style=margin:0px0px0px0px;visibility:hidden;position:absolute;top:0px;left:170px;z-index:2;width:420;height:100%;background-color:#FFFFFF; onMouseOut=zu() onMouseOver=auf()>');
    //-->
    </script>
    blabla
    </div>

    <script language=javascript>
    <!--//
    if (isNS4 || isIE4) document.write('<div id=navi style=margin:0px0px0px0px;visibility:hidden;position:absolute;top:0px;left:200px;z-index:3;width:390;height:100%; onMouseOut=zu_4() onMouseOver=auf_4()>');
    else document.write('<div id=navi style=margin:0px0px0px0px;visibility:hidden;position:absolute;top:0px;left:200px;z-index:3;width:390;height:100%; onMouseOut=zu() onMouseOver=auf()>');
    //-->
    </script>
    blabla
    </div>




    Wenn ich das ganze im NS4 starte, erscheint zwar der Navigationslayer, jedoch kein Hintergrundbildlayer!

    Weiß jemand warum?
    Ich leider nicht...

    Tschö und (hoffentlich) Danke,
    Tobi
     

  2. #2
    Avatar von Adam Wille
    Adam Wille Adam Wille ist offline Mitglied Diamant
    Registriert seit
    Feb 2002
    Ort
    Leipzig
    Beiträge
    2.904
    Hy

    a)
    Benutzt du eigentlich beim Code-schreiben auch Gänsefüßchen?

    b)
    "<SCRIPT LANGUAGE=JavaScript>" solltest du schnell vergessen und dir lieber angewöhnen:
    PHP-Code:
    <script type="text/javascript"
    c)
    Was ist denn das für eine Kommentar-Syntax?
    PHP-Code:
    <!--//
    //--> 
    mag nicht wirklich falsch sein, aber
    PHP-Code:
    <!--
    //--> 
    ist zumindest HTML-Standard.

    Ich hab' mal versucht, das alles ein wenig genauer zu setzen und bin jetzt bei folgendem Aufbau der Seite:
    PHP-Code:
    <html
    <
    head
    <
    title>rechner</title
    <
    script type="text/javascript"
    <!-- 

    isNS4 = (document.layers) ? true false
    isIE4 = (document.all && !document.getElementById) ? true false
    isIE5 = (document.all && document.getElementById) ? true false
    isNS6 = (!document.all && document.getElementById) ? true false

    function 
    auf() { 
        
    layer document.getElementById("bg"); 
        
    layer.style.visibility "visible"
        
    layer document.getElementById("navi"); 
        
    layer.style.visibility "visible"
    }

    function 
    zu() {
        
    layer document.getElementById("bg"); 
        
    layer.style.visibility "hidden"
        
    layer document.getElementById("navi"); 
        
    layer.style.visibility "hidden"
    }

    function 
    auf_4() { 
        
    code "document.bg.visibility = 'visible'"
        
    code "document.navi.visibility = 'visible'"
        
    evalPlus(code); 
    }

    function 
    zu_4() {
        
    code "document.bg.visibility = 'hidden'"
        
    code "document.navi.visibility = 'hidden'"
        
    evalPlus(code); 
    }

    function 
    evalPlus (dacode) { 
        if (
    navigator.appName != "Netscape") { 
            
    dacode dacode.replace("document.""document.all."); 
            
    dacode dacode.replace(".visibility"".style.visibility"); 
        } 
        
    rv = eval (dacode); 
        return (
    rv); 


    //--> 
    </ script
    </
    head
    <
    body>
    <
    div style="position:absolute;top:0;left:0;width:170;height:100%;z-index:10;"
    <
    script type="text/javascript"
    <!--
    if (
    isNS4 || isIE4) {
        
    document.write("<a href='#' onMouseOver='auf_4()'><img src='x.jpg' border='0' width='170' height='100%'></a>"); 
    } else {
        
    document.write("<img src='x.jpg' border='0' width='170' height='100%' onMouseOver='auf()'>");
    }
    //--> 
    </ script
    </
    div>

    <
    script type="text/javascript"
    <!-- 
    if (
    isNS4 || isIE4) {
        
    document.write("<div id='bg' style='background-color:#000000;margin:0px 0px 0px 0px;visibility:hidden;position:absolute;top:0px;left:170px;z-index:2;width:420;height:100%' onMouseOut='zu_4()' onMouseOver='auf_4()'></div>"); 
    } else {
        
    document.write("<div id='bg' style='background-color:#000000;margin:0px 0px 0px 0px;visibility:hidden;position:absolute;top:0px;left:170px;z-index:2;width:420;height:100%' onMouseOut='zu()' onMouseOver='auf()'></div>"); 
    }
    //--> 
    </ script>

    <
    script type="text/javascript">  
    <!-- 
    if (
    isNS4 || isIE4) {
        
    document.write("<div id='navi' style='background-color:#FF0000;margin:0px 0px 0px 0px;visibility:hidden;position:absolute;top:0px;left:200px;z-index:3;width:390;height:100%' onMouseOut='zu_4()' onMouseOver='auf_4()'></div>"); 
    } else {
        
    document.write("<div id='navi' style='background-color:#FF0000;margin:0px 0px 0px 0px;visibility:hidden;position:absolute;top:0px;left:200px;z-index:3;width:390;height:100%' onMouseOut='zu()' onMouseOver='auf()'></div>"); 
    }
    //-->
    </ script>
    </
    body
    </
    html
    (das </ script> natürlich immer zusammen - ist nur des Forums halber)
    Vielleicht geht's ja, wenn alles ein wenig eindeutiger com Code her ist!?
    Hab leider keinen NN 4.x hier um zu testen.

    Geist
     
    Ah, these are the days
    Let them roll as they roll
    And be all you are
    Because you're beautiful
    Material

  3. #3
    Avatar von Thomas Lindner
    Thomas Lindner Thomas Lindner ist offline Mitglied Diamant
    Registriert seit
    Dec 2001
    Ort
    Schwarzenbek, Germany
    Beiträge
    5.022
    Ich nutze (immer) ein Dreamweaver Script, auch wenn ich sonst in Notepad scripte.

    Dieses Script ist mit Netscape 4.75 getestet (und IE):

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    
    <html>
    <head>
    <title>Untitled Document</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <script language="JavaScript">
    <!--
    <!--
    function MM_reloadPage(init) {  //reloads the window if Nav4 resized
      if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
        document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
      else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
    }
    MM_reloadPage(true);
    // -->
    function MM_findObj(n, d) { //v4.0
      var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
        d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
      if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
      for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
      if(!x && document.getElementById) x=document.getElementById(n); return x;
    }
    function MM_showHideLayers() { //v3.0
      var i,p,v,obj,args=MM_showHideLayers.arguments;
      for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(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>
    </head>
    <body bgcolor="#FFFFFF" text="#000000">
    <div id="Layer1" style="position:absolute; width:200px; height:115px; z-index:1; left: 156px; top: 34px; background-color: #000000; layer-background-color: #000000; border: 1px none #000000; visibility: hidden"></div>
    <a href="#" OnClick="MM_showHideLayers('Layer1','','show')">Einblenden</a>
    <br>
    <a href="#" OnClick="MM_showHideLayers('Layer1','','hide')">Ausblenden</a>
    </body>
    </html>
     
    Die Signatur befindet sich aus Platzgründen auf der Rückseite!

Ähnliche Themen

  1. Zustand über mehere Funktionsaufrufe sichern über arguments.callee
    Von Thomas Darimont im Forum Javascript & Ajax
    Antworten: 0
    Letzter Beitrag: 15.01.11, 21:45
  2. Silverlight Methode über Javascript aurufen
    Von martin_ch im Forum .NET WPF & Silverlight
    Antworten: 0
    Letzter Beitrag: 08.07.10, 09:44
  3. Antworten: 3
    Letzter Beitrag: 04.07.10, 12:54
  4. FKT in einer bestimmter Zeit aurufen
    Von kokoriko im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 0
    Letzter Beitrag: 27.09.07, 15:31
  5. Antworten: 3
    Letzter Beitrag: 23.04.07, 16:07