gugalun: Script funktioniert nicht mehr unter MS-Explorer7

Hallo,

leider funktioniert ein Script (in Kombination mit onmouseover) nicht mehr unter MS-Explorer 7. Mit den Vorversionen hat es immer geklappt. Auch Firefox hat mit diesem Script keine Schwierigkeiten.
Hier ein (ur)altes Beispiel: http://www.wolfx.de/beispiel/beipiel.htm
Ich kann das Problem nicht erkennen. Für einen Tipp wäre ich sehr dankbar.

Anbei das JavaScript, ansonten bitten den Quellcode im Beispiel ansehen.

  
<script type="text/javascript">  
<!--  
// Created by Doug Popeney (dpopeney@polymail.calpoly.edu)  
// JavaScripte von http://internet-partner.de  
  
if (navigator.appVersion.indexOf("2.") != -1){  
        check = false;  
        }  
if ((navigator.appVersion.indexOf("3.") != -1) && (navigator.appName.indexOf("Explorer") != -1)){  
        check = false;  
        }  
else {  
        check = true;  
        }  
  
origimage = new Image();  
origimage.src = "famwolf.gif";  
image01on = new Image();  
image01on.src = "tanja.gif";  
image02on = new Image();  
image02on.src = "stefan.gif";  
image03on = new Image();  
image03on.src = "julia.gif";  
image04on = new Image();  
image04on.src = "carolin.gif";  
  
function imageon(name)   {  
        document.altimg.src = eval(name + "on.src");  
}  
function imageoff(name)  {  
        document.altimg.src = eval(name + ".src");  
}  
  
function on(name)  {  
        if (check == true){  
        imageon(name);  
        }  
}  
function off(name)  {  
        if (check == true){  
        imageoff(name);  
        }  
}  
// -->  
</script>  

  1. Hi there,

    Hallo,

    leider funktioniert ein Script (in Kombination mit onmouseover) nicht mehr unter MS-Explorer 7. Mit den Vorversionen hat es immer geklappt. Auch Firefox hat mit diesem Script keine Schwierigkeiten.
    Hier ein (ur)altes Beispiel: http://www.wolfx.de/beispiel/beipiel.htm
    Ich kann das Problem nicht erkennen. Für einen Tipp wäre ich sehr dankbar.

    Auf meinem Rechner funktioniert das ohne Probleme, wahrscheinlich hast Du das nur lokal bei Dir getestet, beim direkten Aufruf der Datei hat der IE7 kurioserweise wesentlich verschäftere "Sicherheitsregeln", vermutlich funktionierts nur deswegen nicht...

  2. Mahlzeit gugalun,

    Ich kann das Problem nicht erkennen. Für einen Tipp wäre ich sehr dankbar.

    Zu Deinem akuten Problem kann ich Dir leider wenig sagen - allerdings kann ich Dir diverse andere Tipps geben:

    <script type="text/javascript">
    <!--

    Es ist *NICHT SINNVOLL*, Javascript-Code mit HTML-Kommentaren ausblenden zu wollen.

    if (navigator.appVersion.indexOf("2.") != -1){
            check = false;
            }
    if ((navigator.appVersion.indexOf("3.") != -1) && (navigator.appName.indexOf("Explorer") != -1)){
            check = false;
            }
    else {
            check = true;
            }

    Es ist *NICHT SINNVOLL*, aufgrund irgendwelche Angaben, die der Browser bezüglich seines Namens oder seiner Version macht (und die beliebig gefälscht sein könnten), irgendwelche globalen Variablen, die keinen besonders aussagekräftigen Namen haben, mit irgendwelchen Werten zu belegen.

    Frage lieber an der konkreten Stelle, wo Browser sich unterschiedlich verhalten bzw. unterschiedliche Fähigkeiten haben, genau diese Fähigkeiten ab - nichts anderes.

    origimage = new Image();
    origimage.src = "famwolf.gif";
    image01on = new Image();
    image01on.src = "tanja.gif";
    image02on = new Image();
    image02on.src = "stefan.gif";
    image03on = new Image();
    image03on.src = "julia.gif";
    image04on = new Image();
    image04on.src = "carolin.gif";

    Du willst http://de.selfhtml.org/javascript/objekte/array.htm@title=Arrays benutzen.

    function imageon(name)   {
            document.altimg.src = eval(name + "on.src");
    }

    "eval() is evil!" *IMMER*! Es gibt *NIEMALS* zwingende logische Gründe, diese scheunentorgroße Sicherheitslücke zu verwenden ...

    Was Du im konkreten Fall willst, kann man leider nur erahnen, da der relevante HTML-Code fehlt. Vermutlich aber lässt sich Dein Anliegen auch recht einfach durch die o.g. Arrays durchführen, ohne eval() nutzen zu müssen.

    if (check == true){
            imageon(name);
            }

    "Wenn es wahr ist, dass 'check' wahr ist ..." - was stört Dich am viel einfacheren

    if (check) {  
      ...  
    }
    

    MfG,
    EKKi

    --
    sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
  3. Danke Klawischnigg und EKKi,

    @ Klawischnigg
    Habe es online probiert, aber mit dem IE7 funktioniert es bei mir einfach nicht, obwohl ich die Seite als vertrauenswürdig eingestellt habe usw.

    @ EKKi
    Danke für die Hinweise, aber den Script habe ich vor Jahren "fertig" gefunden (Autor siehe im Script selbst). Ich selbst habe viel zu wenig Ahnung von JavaScript. Der relevante HTML-Code wäre, falls er Dich noch interessiert, im Quelltext des Beispiels zu finden...

    Eigentlich wollte ich in Kombination mit onmouseover Bilder auswechseln, so dass es zu dem im Beispiel gezeigten Effekt kommt (der mit Firefox immer noch funktioniert): mit der Maus auf eine Person und der Name wird angezeigt.

    Schöne Grüße
    gugalun

    1. Mahlzeit gugalun,

      Danke für die Hinweise, aber den Script habe ich vor Jahren "fertig" gefunden (Autor siehe im Script selbst).

      So sieht das(!) Skript auch aus - als stammte es aus dem letzten Jahrtausend. Wenn Du dermaßen veralteten Code benutzt, darfst Du Dich eigentlich nicht wundern, wenn er mit heutigen Browsern evtl. nicht mehr wie gewünscht funktioniert.

      Ansonsten frage beim Autor des Skripts nach, ob und wenn ja wie halbwegs moderne Browser unterstützt werden.

      MfG,
      EKKi

      --
      sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|