使用window.open()时忽略选项

时间:2015-08-17 16:37:16

标签: javascript

我使用以下内容打开一个新窗口,但似乎忽略了这些选项。

var newWindow = window.open('index.php?ident=' + gender + '&nick=' + nickname + '', 'PopupChat', 'directories=no,location=no,menubar=no,titlebar=no,toolbar=no,scrollbars=yes,status=no, width=' + w + ', height=' + h + ', top=' + top + ', left=' + left);

我已经使用Chrome测试过,我仍然会收到地址栏等。

1 个答案:

答案 0 :(得分:0)

从历史上看,浏览器对选项字符串非常挑剔,并且不允许使用空格。在某些选项之前有空格:

var newWindow = window.open('index.php?ident=' + gender + '&nick=' + nickname + '', 'PopupChat', 'directories=no,location=no,menubar=no,titlebar=no,toolbar=no,scrollbars=yes,status=no, width=' + w + ', height=' + h + ', top=' + top + ', left=' + left);
// Here --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------^----------------^-----------------^----------------^

来自MDN

  

字符串不得包含任何空格

删除它们可能会解决问题。

另外,如果whtopleft中的值不是原始数字,那么它们也会造成麻烦。

工作示例:如果我将其放在服务器上并使用Chrome(或Firefox或IE11)运行它,它会在一个窗口中打开Stack Overflow,其中包含所请求的选项(地址栏除外,您无法再抑制):< / p>

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>Foo</title>
</head>
<body>
  <input type="button" id="the-button" value="Click me">
<script>
  var w = 400, h = 600; top = 1, left = 1;
  document.getElementById("the-button").onclick = function() {
    var newWindow = window.open('http://stackoverflow.com', 'PopupChat', 'directories=no,location=no,menubar=no,titlebar=no,toolbar=no,scrollbars=yes,status=no,width=' + w + ',height=' + h + ',top=' + top + ',left=' + left);
  };
</script>
</body>
</html>