window.open + IE

Tob

Erfahrenes Mitglied
Nachdem der User auf einen Link clickt wird der Code(unten) ausgeführt, um den user anhand seiner Bildschirmauflösung auf die richtige seite um zu leiten. Ich möchte aber nicht das ein neues Fenster aufpopt. Mit dem Opera7 funzt das auch, nur beim Mozilla und beim IE tut sich einfach nichts... wenn ich statt _self _blank benutze geht es bei allen. Warum? Kann ich da was dagegen tun?

PHP:
if (screen.width =='1024' && screen.height=='768'){
    window.open('index_v2_1024x768.php','_self');
    }
else{
    if (screen.width == '1280' && screen.height=='1024'){
          window.open('index_v2.php','_self');
         }
     else{
      alert('Deine Bildschirmauflösung wird leider nicht unterstützt!\n Du wirst zu v1 weitergeleitet.');
                window.open('../index.php','_self');
    }
  }
danke schon mal

tob
 
Wenn du nicht willst, dass ein neues Browserfenster geöffnet wird, dann bist du primär mit der Methode window.open() falsch beraten, denn wie der Name der Methode schon sagt, wird damit im Grunde genommen genau so etwas vorgenommen.

Besser ist hier, über die Referenz window.location auf die angezeigte URL im Browserfenster zuzugreifen.
Also an entsprechender Stelle über diese Referenz die URL ändern, anstatt ein neues Fenster öffnen zu wollen:
PHP:
if (screen.width == 1024 && screen.height == 768) {
    window.location = "index_v2_1024x768.php";
} else {
    if (screen.width == 1280 && screen.height == 1024) {
        window.loaction = "index_v2.php";
    } else {
        alert("Deine Bildschirmauflösung wird leider nicht unterstützt!\n Du wirst zu v1 weitergeleitet.");
        window.location = "../index.php";
    }
}
Wie du vielleicht siehst, habe ich bei der if-Abfrage noch die Hochstriche entfernt, denn du hast ja von der Sache her mit einem String verglichen, die Eigenschaft screen.width gibt ja aber eine Zahl zurück.
Dass das trotzdem funktioniert, liegt am automatischen typecasting von JavaScript, aber besser ist dennoch, die Hochstriche komplett zu entfernen. :)

hth,
Geist
 
Jupido es funzt! Vielen Dank für die Hilfe.
Achso bevor ich es vergesse: Bei dir hat sich ein Tippfehler eingeschlichen... Also für all Copy&Paste-Fans hier nochmal die Tippfehlerfreie Version:
PHP:
if (screen.width == 1024 && screen.height == 768) {
    window.location = "index_v2_1024x768.php";
} else {
    if (screen.width == 1280 && screen.height == 1024) {
        window.location = "index_v2.php";
    } else {
        alert("Deine Bildschirmauflösung wird leider nicht unterstützt!\n Du wirst zu v1 weitergeleitet.");
        window.location = "../index.php";
    }
}

tob
 
Zuletzt bearbeitet:
Huch, sorry natürlich, danke für die Korrektur.
Solange du's aber auf die Reihe bekommen hast, umso besser. :)

have a nice day,
Geist
 

Neue Beiträge

Zurück