Ly: innerText auch bei Netscape? Und andere Probleme!

Hallo liebe Leute,

dieses Beispiel laeuf unterm IE-Browser aber nicht NS-Browser. Fuer NS musste ich alles mit DIV-Tag machen. Was viel zu kompliziert gewesen ist, deshalb meine Frage: "Gibt es wirklich nicht so ein aquivalent in Netscape?"

Erklaerung zum Code:

Wenn man im Browser "start.htm" hat, dann bekommt man
  zwei Frames. Im ersten Frame gibt es Buttons. Wenn man
  drauf drueckt erscheint im zweiten Frame Texte.

Noch ein Problem zu Netscape (oder mein Fehler):
   --------
  parent.frame2.document.write("bla") funktioniert nicht, aber
  parent.frame2.document.location = "blabla.htm"

---------------start.htm----------------------
<html>
<head>
<title>start</title>
</head>
<frameset rows="50%,50%">
<frame src="frame1.htm" name="frame1">
<frame src="frame2.htm" name="frame2">
</frameset>
</html>
---------------frame1.htm---------------------
<html>
<head>
<title>frame1</title>
<script>
var i=0, laufX=0, schrittX = Math.round(700/20),
  partners="Partners"
  info="Infos",
  games0="Willkommen in der Game Zone"
  games1="Suche noch Spiele"

function buttonOnclick(e) {
  switch (e) {
    case "partners":start(partners); break;
    case "games":   start(games0);start(games1);break;
    case "info":    start(info); break;
    default:;
  }
}
function laufText() {
  parent.frame2.document.all['text'].style.clip = "rect(0 "+laufX+" 30 0)"
  laufX += schrittX
  if (laufX < 600)
    setTimeout("laufText()",50)
}
function start(e) {
  parent.frame2.document.all['text'].style.clip = "rect(0 0 30 0)"
  parent.frame2.document.all['text'].innerText = e
  laufX=0
  laufText("text")
}
function toggle(e) {
  parent.frame2.document.all['text'].style.clip = "rect(0 0 30 0)"
  parent.frame2.document.all['text'].innerText = e
  laufX=0
  laufText("text")
}
</script>
</head>
<body>
<form>
<input type="button" value="partners" onclick="buttonOnclick('partners')">
<input type="button" value="games" onclick="buttonOnclick('games')">
<input type="button" value="info" onclick="buttonOnclick('info')">
</form>
</body>
</html>
---------------frame2.htm---------------------
<html>
<head>
<title>frame2</title>
</head>
<body>
<div id="text" style="color:#FFCC33; position:absolute; top:50px; left:0px; width:650; height:30"></div>
</body>
</html>
----------------Ende------------------------

Viele Gruesse,
Di Ly

  1. Hallo
    Leider gibt es kein äquivalent zu innerText bei Netscape.
    Eine Möglichkeit um einen Effekt wie deinen auch in Netscape zu erreichen besteht darin, fuer jedes Button ein div zu definieren, in welchem dann der Text zu den Buttons steht.
    Also frame2.html:
    <html>
    <head>
    <title>frame2</title>
    </head>
    <body>
    <div id="text" style="color:#FFCC33; position:absolute; top:50px; left:0px; width:650; height:30; clip:rect(0 0 30 0); visibility:hidden;">Hier steht alles zu Partners</div>
    <div id="text1" style="color:#FFCC33; position:absolute; top:50px; left:0px; width:650; height:30; clip:rect(0 0 30 0); visibility:hidden;">Hier steht alles zu Partners</div>
    <div id="text2" style="color:#FFCC33; position:absolute; top:50px; left:0px; width:650; height:30; clip:rect(0 0 30 0); visibility:hidden;">Hier steht alles zu games</div>
    <div id="text3" style="color:#FFCC33; position:absolute; top:50px; left:0px; width:650; height:30; clip:rect(0 0 30 0); visibility:hidden;">Hier steht alles zu Info</div>
    </body>
    </html>

    frame1.html:
    <html>
    <head>
    <title>frame1</title>
    <script>
    var i=0, laufX=0, schrittX = Math.round(700/20),
      partners="Partners",
      info="Infos",
      games0="Willkommen in der Game Zone",
      games1="Suche noch Spiele";

    function buttonOnclick(e,a) {
      switch (e) {
        case "partners":start(partners,a); break;
        case "games":   start(games0,a);start(games1,a);break;
        case "info":    start(info,a); break;
        default:;
      }
    }
    test=0;
    function laufText(a) {
      if (document.all)
      parent.frame2.document.all['text'].style.clip = "rect(0 "+laufX+" 30 0)";
      else if (document.layers)
      test=a;
      parent.frame2.document.layers[a].clip.width = laufX;
      laufX += schrittX;
      if (laufX < 600)
        setTimeout("laufText(test)",80);
    }
    function start(e,a) {
        if (document.all){
        parent.frame2.document.all['text'].innerText = e;}
    else if (document.layers){
      for(i=1;i<4;i++)  parent.frame2.document.layers[i].visibility= "hidden";
        parent.frame2.document.layers[a].visibility= "show";}
        laufX=0;
      laufText(a);
    }
    </script>
    </head>
    <body>
    <form>
    <input type="button" value="partners" onclick="buttonOnclick('partners',1)">
    <input type="button" value="games" onclick="buttonOnclick('games',2)">
    <input type="button" value="info" onclick="buttonOnclick('info',3)">
    </form>
    </body>
    </html>

    Ich hoffe das hilft ein wenig
    Holger
    PS du hast in deiner Version sehr viele Semikolins vergessen!!