javascript - 为什么 Firefox 6 忽略我在 javascript window.open 中的高度、宽度、顶部和左侧设置?

标签 javascript html firefox web

有人能看出我的代码有什么问题吗?它在 IE 中表现正常,但 Firefox 6 似乎忽略了我传递给 javascript window.open 调用的任何高度或宽度设置。我看不出它有什么明显的错误,但 javascript 不是我的母语,所以我可能会在其中的某个地方犯一个菜鸟错误。

此函数的目的是打开一个以屏幕为中心的 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 被实现,那么它将使用,否则使用带有“Modal”选项的 window.open。

最佳答案

showModalDialog 中使用分号,而不是逗号:

<html>
<head>

<script language="javascript" type="text/javascript">
    function openWindow(pageURL,Title,w,h) 
    {
        var left = (screen.width - w) / 2;
        var top = (screen.height - h) / 2;
        var options;
        if (window.showModalDialog) {
            options = 'dialogwidth:' + w     + ';dialogheight:'+ h + ';dialogtop:'+ top + ';dialogleft:' + left + ';resizable=no';
            console.log(options);
            window.showModalDialog(pageURL, Title, options);
        } else {
            options = "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;
            console.log("window.open options: " + options);
            window.open(pageURL, Title, options)
        }
    }   

</script>
</head>
<body>
<a href="javascript:openWindow('http://www.google.com','Google',800,600);">Launch</a>
</body>
</html>

关于javascript - 为什么 Firefox 6 忽略我在 javascript window.open 中的高度、宽度、顶部和左侧设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7272383/

相关文章:

javascript - 为什么我总是得到属性或字段尚未初始化?

javascript - 如何将 100% 高度应用于 div?

javascript - firefox 自动触发名为 'onload' 的 javascript 函数

javascript - Angular JS 动态模板文件

javascript - 更改 FullCalendar 中的资源

html - 移动 View 上的 Bootstrap 3 div 顺序更改

google-chrome - 从封闭的网络应用程序在 Chrome 或 Firefox 中发送桌面通知?

html - 隐藏滚动条,但仍然可以滚动

javascript - 如何在 R 中运行原生 JavaScript 函数?

javascript - 当元素被另一个元素替换时继续动画