Использование window.open() для позиционирования окна в середине экрана
Приветствую знатоков Javascript.
Я, честно говоря, уже слегка припух от этой задачки, и не могу найти в инете прямого ответа.... Моя задача - вывести окно (800X600 пикселей) в середине экрана. Если я задаю реальные числовые значения для параметров top и left, то окно открывается без проблем со смещением в 300 пикселей по горизонтали и вертикали от верхнего левого угла экрана: myWin = window.open("bla.htm", "displayWindow", "width=800,height=600,left=300,top=300,status=no,toolbar=no,menubar=no"); Но моя задача - вывести окно (800X600 пикселей) в середине экрана, то есть по идее это должно быть так: function openWindow() { var leftvar = (screen.width-800)/2; var topvar = (screen.height-600)/2; myWin = window.open("bla.htm", "displayWindow", "width=800,height=600,left=leftvar,top=topvar,status=no,toolbar=no,menubar=no"); } Увы........ Окно выводится, но не посередине экрана, а в левом верхнем углу. Прошу подсказать, в чем моя ошибка? С уважением, Марат |
в первую очередь замечание: используйте ББ-код для оформления своих листингов.
а вот, собственно и решение function openWindow() { var leftvar = (screen.width-800)/2; var topvar = (screen.height-600)/2; myWin = window.open("bla.htm", "displayWindow", "width=800,height=600,left="+leftvar+",top="+topvar+",status=no,toolbar=no,menubar=no"); } |
Спасибо за ответ
Еще раз всех приветствую!
Спасибо большое за ответ. Я только что попробовал внедрить листинг, который мне предложил уважаемый Gvozd. Но, увы, он не действует так, как мне хотелось бы. Я уже самостоятельно разобрался с данной проблемкой. Для этого, оказывается, надо было ввести в строке поисковика GOOGLE строчку типа такой: Цитата:
Я нашел маленький и очаровательный скрипт на эту тему. Вот он, красавчик (испробовал - действует безотказно): function openWin() { var features, w = 800, h = 600; var top = (screen.height - h)/2, left = (screen.width - w)/2; if(top < 0) top = 0; if(left < 0) left = 0; features = 'top=' + top + ',left=' +left; features += ',height=' + h + ',width=' + w + ',resizable=no'; myWin = open('bla.htm', 'displayWindow', features); } Да простят меня уважаемые модераторы форума, но грех не привести конкретный пример работы этого скрипта, который я внедрил на сайте, созданном мной: http://www.roslestnica.ru/foto.php Еще раз спасибо за ответ, уважаемый Gvozd. С наилучшими пожеланиями, marat-chessman |
единственная прична почему мой скпипт не работает, судя по всему пробел, случайно закравшийся в строку с параметрами.
а иак он принципиально ничем не отличается от вашего, кроме списка параметров еще |
Как раз хотел задать тот же самый вопрос!
По-моему, скрипт Гвоздя гораздо лаконичнее и это его красит. Только вот в Опере почему-то окно централизуется плохо - отображается ближе к нижней части окна. |
Да и в Firefox'e тоже.
|
top=".$_COOKIE['m_top'].",left=".$_COOKIE['m_left']."
при этом заранее при загрузке с помощью var m_left; m_left = (screen.availWidth/2)-(450/2); $.cookie('m_left', m_left); var m_top; m_top = (screen.availHeight/2)-(480/2); $.cookie('m_top', m_top); извращенно, зато работает 100% |
нету надежного способа отцентрировать окно (http://habrahabr.ru/blogs/javascript/20916/). left, top - для верхнего левого угла окна, а width, height - для содержимого
|
Цитата:
|
O_o топиком ошибся?
|
Часовой пояс GMT +3, время: 16:35. |