04.07.2008, 03:24
|
Новичок на форуме
|
|
Регистрация: 04.07.2008
Сообщений: 2
|
|
Использование 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");
}
Увы........ Окно выводится, но не посередине экрана, а в левом верхнем углу. Прошу подсказать, в чем моя ошибка?
С уважением,
Марат
Последний раз редактировалось Андрей Параничев, 05.07.2008 в 21:43.
|
|
05.07.2008, 20:56
|
|
Матрос
|
|
Регистрация: 04.04.2008
Сообщений: 6,246
|
|
в первую очередь замечание: используйте ББ-код для оформления своих листингов.
а вот, собственно и решение
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, 06.07.2008 в 14:18.
|
|
06.07.2008, 00:30
|
Новичок на форуме
|
|
Регистрация: 04.07.2008
Сообщений: 2
|
|
Спасибо за ответ
Еще раз всех приветствую!
Спасибо большое за ответ. Я только что попробовал внедрить листинг, который мне предложил уважаемый Gvozd. Но, увы, он не действует так, как мне хотелось бы. Я уже самостоятельно разобрался с данной проблемкой. Для этого, оказывается, надо было ввести в строке поисковика GOOGLE строчку типа такой:
Цитата:
|
javascript window.open() how to open window in the center of screen
|
Я нашел маленький и очаровательный скрипт на эту тему. Вот он, красавчик (испробовал - действует безотказно):
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
Последний раз редактировалось marat-chessman, 06.07.2008 в 01:14.
|
|
06.07.2008, 14:18
|
|
Матрос
|
|
Регистрация: 04.04.2008
Сообщений: 6,246
|
|
единственная прична почему мой скпипт не работает, судя по всему пробел, случайно закравшийся в строку с параметрами.
а иак он принципиально ничем не отличается от вашего, кроме списка параметров еще
|
|
10.07.2008, 13:58
|
|
Интересующийся
|
|
Регистрация: 10.07.2008
Сообщений: 26
|
|
Как раз хотел задать тот же самый вопрос!
По-моему, скрипт Гвоздя гораздо лаконичнее и это его красит. Только вот в Опере почему-то окно централизуется плохо - отображается ближе к нижней части окна.
|
|
12.10.2009, 20:08
|
|
Да и в Firefox'e тоже.
|
|
16.10.2009, 01:30
|
|
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%
|
|
17.10.2009, 04:26
|
|
|
|
Регистрация: 27.12.2008
Сообщений: 4,201
|
|
нету надежного способа отцентрировать окно ( http://habrahabr.ru/blogs/javascript/20916/). left, top - для верхнего левого угла окна, а width, height - для содержимого
|
|
21.10.2009, 11:11
|
|
Модератор Всея Форума
|
|
Регистрация: 14.05.2009
Сообщений: 4,021
|
|
|
|
21.10.2009, 11:23
|
|
|
|
Регистрация: 27.12.2008
Сообщений: 4,201
|
|
O_o топиком ошибся?
|
|
|
|