为什么这个window.open适用于Chrome和FF但不适用于IE?

时间:2013-01-27 12:40:10

标签: javascript html internet-explorer-9

下面的javascript / html会在用户屏幕的右下角创建一个小弹出窗口。此代码适用于Chrome和Firefox,但出于某种原因不适用于IE v9。

在IE9调试器中它说 行:17 错误:参数无效。

第17行是开始var win = window.open(...

的行

在调试器中,我看到:

HTML1202: http://xyzserver:8080/path/test_popup.html is running in Compatibility View because 'Display intranet sites in Compatibility View' is checked. 

SCRIPT87:参数无效。 test_popup.html,第17行第3个字符

字符是var win = ...

中的v

任何想法?

<!DOCTYPE html>
<html>
<head>
<script>
function open_win(data) 
{
  var w = 200;
  var h = 200;
  var left = (screen.width - (w * 1.1)); 
  var top  = (screen.height - (h * 1.1));

  var win = window.open('', 'about:blank', 'width=' + w + ',  height=' + h + ', top=' + top + ', left=' + left);
  win.document.write("<p>Received: " + data + "</p>")
  win.focus()
}
</script>
</head>

<body>
<form>
<input type="button" value="Open Window" onclick="open_win('information here')">
</form>
</body>

</html>

2 个答案:

答案 0 :(得分:3)

您需要传递about:blank作为第一个参数而不是第二个参数(这是IE中显然可能不包含。:的窗口名称)

答案 1 :(得分:0)

试试这个:

var win = window.open('', '', 'width=' + w + ',  height=' + h + ', top=' + top + ', left=' + left);

所以没有'about:blank'因为Microsoft不支持名称作为第二个参数。

或者您应该说:window.open('_blank', '', 'width='...)....etc将名称作为第一个参数。