【发布时间】:2012-08-26 22:08:28
【问题描述】:
我遇到了一些 JavaScript 和 window.open 方法的问题。
我正在尝试根据当前时间控制弹出窗口的大小。小时控制高度,分钟(四舍五入到最接近的五位)控制宽度。
高度控制工作正常,并且对应于正确的值...但是宽度始终为我的屏幕的 100%,我不知道为什么。
我已经放置了一个测试警报,向我显示它应该放入 window.open 方法的文本,这看起来很好 - 事实上,如果我将警报中的文本复制并粘贴到代码中并重新加载页面,那么高度和宽度都可以完美地工作。看起来很奇怪。
这是我的代码...
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Untitled</title>
<meta name="generator" content="BBEdit 10.1" />
<script type="text/javascript">
var d = new Date();
var h = 10*(d.getHours())+300
var m = d.getMinutes();
m = 10*(Math.round(parseInt(m)/5)*5)+300;
var a = "width=";
var b = ", height=";
var size = "'"+a+m+b+h+"'";
var openWin = function(){window.open('','',size)};
function test() {alert(h); alert(m); alert(size);}
</script>
</head>
<body onload="test()">
<input type="button" value="Open Window" onclick="openWin()" />
</body>
</html>
【问题讨论】:
-
为什么要制作一个大小为小时和分钟的窗口?
-
var size = "'"+a+m+b+h+"'";这一行确实让人难以阅读(一般而言)。我不建议写这样的东西 -
你不能可靠地控制窗口大小,至少在某些浏览器中这样做肯定会失败。
标签: javascript variables methods size window.open