2

我有以下情况。

网站 A 正在打开网站 B 使用window.open("Website B", "windowName");

在网站 BI 中有以下代码:

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

在网站 CI 中,Firefox 和 Chrome(所有版本)window.name等于 '',但在 IE(版本 9、10、11)中,它等于 'windowName'。

有人可以解释为什么吗?当我到达网站 C 时,我需要一个解决方法window.name = ''。我无法在网站 B 中使用 windows.open 打开网站 C,我需要使用 window.location。

源代码添加:

index.html(站点 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(站点 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(站点 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>
4

2 回答 2

4

根据 MSDN 文档,该name属性是可变的:

http://msdn.microsoft.com/en-us/library/ie/ms534187%28v=vs.85%29.aspx

我尝试更改name属性,它在 IE9 中运行良好:

http://jsfiddle.net/Guffa/5cBBy/1/

我还尝试将其更改为空字符串,并且有效:

http://jsfiddle.net/5cBBy/2/

因此,您的代码可能还有其他问题。

于 2012-09-28T18:33:49.073 回答
1

我遇到了同样的问题,发现您需要在设置新的 window.location 之后重命名窗口。这对我有用!

于 2016-11-14T10:16:11.603 回答