Robin Popp: Bildwechsel u. Framewechsel laufen im NS4 nicht

Hallo,

es wundert mich, weil die Scripte bisher auch im Ns4 liefen, aber diesmal komischerweise nicht...
Ich habe eine Navigationsleiste mit onmouseover-Bildwechsel, dazu kommt beim Klicken auf einen bestimmten Link ein zweiter Frameinhaltsaustausch (zusätzlich zum Inhaltsframe wird also der Kopfframe ausgetauscht). Das läuft im NS6 und IE, aber eben nicht im NS4.
Ausserdem möchte ich durch die Funktion rechange() feststellen, ob dieser Kopfframe ausgetauscht wurde und beim Klicken auf die betreffenden Links den Ursprungskopfframe wiederherstellen.

Ich hoffe, Ihr könnt mir weiterhelfen, dass diese Themen auch schon zu genüge im Archiv zu finden sein sollten, ist mir klar. Allerdings finde ich den Fehler in diesen Scripten jetzt nicht, obwohl sie eigentlich nur aus anderen meiner Webseiten kopiert wurde.

<head>
<script language="javascript"><!--
// DAS BILDWECHSELSCRIPT
{
shop0=new Image();
shop0.src="../images/navigation/shop0.gif";
shop1=new Image();
shop1.src="../images/navigation/shop1.gif";

brauerei0=new Image();
brauerei0.src="../images/navigation/diebrauerei0.gif";
brauerei1=new Image();
brauerei1.src="../images/navigation/diebrauerei1.gif";

braustuberl0=new Image();
braustuberl0.src="../images/navigation/braustuberl0.gif";
braustuberl1=new Image();
braustuberl1.src="../images/navigation/braustuberl1.gif";
// ETC.
}

function over(Name,Image,No)
 {
  document[Name].src=eval(Image+No+".src")
 }
//--></script>

<script language="javascript"><!--
// DAS FRAMEWECHSELSCRIPT
function change()
{
 top.kopf.location.href="kopf_braustuberl.html";
}
//--></script>

<script language="javascript"><!--
// DAS FRAME-WIEDERHERSTELLENSCRIPT
function rechange()
if (top.kopf.location.src="kopf_braustuberl.html" || top.kopf.location.src="kopf_braustuberl2.html")
 {
 top.kopf.location.href="kopf_thorbrau.html"
 }
//--></script>
</head/

<body>
<!-- HIER KURZ SGML -->
<?
function getid() {
            srand ((double)microtime()*1000000);
            $id = md5 (uniqid (rand()));
            return $id;
}
?>
<!-- SGML-ENDE -->
<div class="navigation" id="navigation">
 <table width="130" height="410" border="0" cellspacing="0" cellpadding="0">
  <tr>
   <td height="25" id="td2">
    <!-- HIER EINE SGML-SCHALTFLÄCHE -->
    <?
echo "<a href=/cgi-bin/shop/shop.pl?action=shopstart&hd=no&sollwkid=";
echo getid();
echo " target=inhalt onmouseover=over('shop','shop',1) onmouseout=over('shop','shop',0) onclick=rechange()><img src=../images/navigation/shop0.gif width=130 height=25 name=shop border=0 alt=Shop /></a>";
?>
    <!-- ENDE SGML-SCHALTFLÄCHE -->
   </td>
  </tr>
  <tr>
   <td height="25" id="td5">
    <a href="brauerei/" target="inhalt" onmouseover="over('brauerei','brauerei',1)" onmouseout="over('brauerei','brauerei',0)" onclick="rechange()">
    <img src="../images/navigation/diebrauerei0.gif" width="130" height="25" name="brauerei" border="0" alt="Die Brauerei" /></a></td>
  </tr>
  <tr>
   <td height="25" id="td12">
    <a href="../braustuberl/braustuberl.html" target="inhalt" onmouseover="over('braustuberl','braustuberl',1)" onmouseout="over('braustuberl','braustuberl',0)" onclick="change()">
    <img src="../images/navigation/braustuberl0.gif" width="130" height="25" name="braustuberl" border="0" alt="Bräustüberl" /></a></td>
  </tr>
 </table>
</div></body>

Ich hoffe, Ihr entdeckt was. Lasst Euch von der SGML-Geschichte nicht verwirren. Daran kanns nicht liegen, habs aber sicherheitshalber mitgepostet.

Im Netz kann man das unter www.thorbraeu.de/test/html/index.html finden (den Frameset), die Navigation an sich unter www.thorbraeu.de/test/html/navigation.php3.

Vielen Dank, Robin

--
Dass Du nicht paranoid bist, heisst nicht, dass sie auch nicht hinter Dir her sind...
  1. Ach ja,

    ich hatte vergessen, anzumerken, dass die Funktion rechange() in KEINEM Browser funktioniert, nicht wie die anderen beiden nur im NS 4 nicht.

    Robin

    --
    Dass Du nicht paranoid bist, heisst nicht, dass sie auch nicht hinter Dir her sind...
  2. <head>
    <script language="javascript"><!--
    // DAS BILDWECHSELSCRIPT
    {
    shop0=new Image();
    shop0.src="../images/navigation/shop0.gif";
    shop1=new Image();
    shop1.src="../images/navigation/shop1.gif";

    brauerei0=new Image();
    brauerei0.src="../images/navigation/diebrauerei0.gif";
    brauerei1=new Image();
    brauerei1.src="../images/navigation/diebrauerei1.gif";

    braustuberl0=new Image();
    braustuberl0.src="../images/navigation/braustuberl0.gif";
    braustuberl1=new Image();
    braustuberl1.src="../images/navigation/braustuberl1.gif";
    // ETC.

    Du weist was Array sind?

    var braustuberl = new Array();
    function preload(src)
    {
         var i = braustuberl.length;
         braustuberl[i] = new Image();
         braustuberl[i].src = src;
    }

    preload("../images/navigation/shop0.gif");
    prelaod("../images/navigation/shop1.gif");
    ETC

    }

    function over(Name,Image,No)
    {
      document[Name].src=eval(Image+No+".src")
    }

    eval ist NIE nötig. Es gibt wenige Fälle wo der Einsatz von eval sinnvoll ist, aber bei sowas ist es nur der Versuch "irgendwas" hinzubiegen.

    Vielleicht so:
    function over(Name,Image,No)
    {
        document[Name].src = window[Image][No].src;
    }

    <script language="javascript"><!--
    // DAS FRAME-WIEDERHERSTELLENSCRIPT
    function rechange()
    if (top.kopf.location.src="kopf_braustuberl.html" || top.kopf.location.src="kopf_braustuberl2.html")

    ein Vergleich sieht so aus:
     if (top.kopf.location.src == "kopf_braustuberl.html" ||

    Struppi.

    1. ein Vergleich sieht so aus:
       if (top.kopf.location.src == "kopf_braustuberl.html" ||

      Hi Björn,

      danke, ja, ich weiss natürlich, was Arrays sind. Es ist nur so, dass diese Version bisher immer funktionierte. Aber ich probier das mal aus.
      Das mit dem == Vergleich hatte ich auch ausprobiert, aber hat trotzdem nicht geklappt - komischerweise. Aber ansonsten sind Dir ja auch keine gravierenden Schwierigkeiten aufgefallen. Ich probier einfach mal weiter.

      --
      Dass Du nicht paranoid bist, heisst nicht, dass sie auch nicht hinter Dir her sind...