我有以下情况。
网站A正在使用window.open("Website B", "windowName");
在网站B中,我有以下代码:
<script>
window.name='';
window.location.href = 'Website C';
</script>
在网站C中我在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>
答案 0 :(得分: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/
我还尝试将其更改为空字符串,这样可行:
因此,您的代码可能还有其他问题。
答案 1 :(得分:1)
我遇到了同样的问题,发现你需要在设置新的window.location后重命名窗口。这对我有用!