Javascript window.Namen - Problem im IE

Habe ich Folgendes Szenario.

Website Ein, ist die Eröffnung Website B mit window.open("Website B", "windowName");

In Website B ich habe den folgenden code:

<script>
  window.name='';  
  window.location.href = 'Website C'; 
</script>

Website In C habe ich in Firefox und Chrome (alle Versionen) window.name gleich ", aber im IE(Versionen 9, 10, 11) es ist gleich 'windowName'.

Kann mir jemand erklären, warum? Ich brauche eine Lösung für immer window.name = '' wenn ich zur Website C. kann ich nicht windows verwenden.öffnen Sie in Website B auf Website öffnen C, ich Fenster.Lage.

Quelle codiert Hinzugefügt:

index.html (Standort A)

<!DOCTYPE html>
<html>
<title>Page A</title>
<head>
<script>
    function test2(){
        window.open("index2.html","Some window name","width=500,height=500");
    }
</script>
</head>
<body>
    <input type="button" onClick="test2();">
</body>
</html>

index2.html (Standort B)

<!DOCTYPE html>
<html>
<title>Page B</title>
<head>
<script>
    document.write("initial window name: [" + window.name + "]<br/><br/>");
    window.name=""; //we set it to empty string
    document.write("after we set window.name to empty string: [" + window.name + "]"); //all fine in all browsers, shows nothing
    document.location= 'index3.html';
</script>
</head>
<body>
</body>
</html>

index3.html (Standort C)

<!DOCTYPE html>
<html>
<title>Page C</title>
<head>
<script>
    document.write("initial window name: [" + window.name + "]"); //OK in Firefox (shows nothing). Not OK in IE, shows "Some window name"
</script>
</head>
<body>
</body>
</html>
  • Hinzugefügt der source-code, der zeigt, dass das problem und bat für jemanden um eine Behelfslösung. Bitte wieder öffnen.
  • Nicht in der Lage, das problem zu reproduzieren (mit verschiedenen Browsern, einschließlich MSIE6), obwohl in meinem Fall, ich setzte die Namen / Aufruf die Umleitung in separate Javascript-Aufrufe eher als synchron - tut es aber trotzdem passieren, wenn man sich auf Dokument ändern.Lage über eine setTimeout nach der änderung der Namen?
  • Auf IE (alle Versionen 9-11) auf Seite C es zeigt immer noch Fenster.name = 'Einige Fenster-name', nach dem hinzufügen von etwas, wie auf Seite B: setTimeout(doRedirect, 10000); Bitte beachten Sie, dass ich nur Zugriff auf die Seite B code, also Seite A und Seite C kann ich nicht ändern, diese zu lösen.
  • Ich kann bestätigen, dass auf der Seite Ein: Fenster.name = "Einige Fenster-name"; - Dokument.location="index2.html"; statt der Fenster.open() ist das Problem Weg. Bitte beachten Sie, dass ich nur Zugriff auf die Seite B code, also Seite A und Seite C kann ich nicht ändern, diese zu lösen.
  • Ich erlebt haben das gleiche Problem im IE11. Ich denke, es liegt an der Art, wie Internet Explorer schafft es die Registerkarten intern. Meine tests haben gezeigt, dass nach dem ändern der name-Eigenschaft des Fensters, in das Dokument, wenn die URL auf der Registerkarte änderungen, DH wieder behauptet, der ursprüngliche name es angegeben, um die name-Eigenschaft. Darüber hinaus, wenn Sie kopieren einen Reiter, der IE re-use tabs, die Sie zuvor geschlossen! Ich habe festgestellt, dass dies der Fall ist, wie tabs, die ich vorher benannt und geschlossen hatte, erschien wieder beim duplizieren von tabs (Strg+K). Dies geschieht auch mit Anker mit dem Ziel "_blank".
InformationsquelleAutor Stefan Iancu | 2012-09-28
Schreibe einen Kommentar