【发布时间】:2011-09-01 15:11:19
【问题描述】:
谁能看到我的代码有什么问题?它在 IE 中正常运行,但 Firefox 6 似乎忽略了我传递给 javascript window.open 调用的任何高度或宽度设置。我看不出它有什么明显的问题,但 javascript 不是我的第一语言,所以我可能在这个地方犯了一个 noob 错误。
此功能的目的是打开一个以屏幕为中心的 800x600 窗口,并在 IE 和 Mozilla 系列浏览器中以模态方式显示。
<html>
<head>
<script language="javascript" type="text/javascript">
function openWindow(pageURL,Title,w,h)
{
var left = (screen.width/2)-(w/2);
var top = (screen.height/2)-(h/2);
if (window.showModalDialog) {
window.showModalDialog(pageURL,Title,'dialogWidth:' + w + 'px,dialogHeight:'+ h + 'px,dialogTop:'+ top + 'px,dialogLeft:' + left + ',resizable=no');
} else {
window.open(pageURL,Title,"toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes,resizable=no,modal=yes, copyhistory=no,width=" + w + ", height=" + h + ", top=" + top + ", left=" + left)
}
}
</script>
</head>
<body>
<a href="javascript:openWindow('http://www.google.com','Google',800,600);">Launch</a>
</body>
</html>
为了澄清一点,该函数旨在测试 ShowModalDialog 的存在(假设只有 IE 支持它)并在支持 W3C window.open 命令的所有内容中落入正确的 window.open 分支,该命令实现“模态”选项。这个想法是,如果实现了 ShowModalDialog,那么它将使用它,否则将 window.open 与“Modal”选项一起使用。
【问题讨论】:
-
showModalDialog现在基本上所有浏览器都支持了,所以假设只有 IE 会落入该代码路径是一个错误的假设。
标签: javascript html firefox web