Почему Firefox 6 игнорирует мои настройки высоты, ширины, верха и левого угла в javascript window.open? - PullRequest
2 голосов
/ 01 сентября 2011

Кто-нибудь может увидеть, что не так с моим кодом?В 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 поддерживает его) и попадает вправильная ветка window.open во всем, что поддерживает команду W3C window.open, которая реализует опцию «Modal».Идея заключалась в том, что если бы ShowModalDialog был реализован, то он использовал бы это, в противном случае используйте window.open с опцией «Modal».

Ответы [ 2 ]

4 голосов
/ 01 сентября 2011

Точки с запятой, а не запятые, в 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>
0 голосов
/ 01 сентября 2011

Является ли showModalDialog() действительным членом window? Я не могу найти это в документации.

Редактировать: только что сделал быстрый поиск в Google. showModalDialog не является стандартом W3C и не реализовано в Firefox.

Редактировать: я не прав. Firefox провалился и начал поддерживать его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...