Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.07.2008, 03:24
Новичок на форуме
Отправить личное сообщение для marat-chessman Посмотреть профиль Найти все сообщения от marat-chessman
 
Регистрация: 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.
Ответить с цитированием
  #2 (permalink)  
Старый 05.07.2008, 20:56
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 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.
Ответить с цитированием
  #3 (permalink)  
Старый 06.07.2008, 00:30
Новичок на форуме
Отправить личное сообщение для marat-chessman Посмотреть профиль Найти все сообщения от marat-chessman
 
Регистрация: 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.
Ответить с цитированием
  #4 (permalink)  
Старый 06.07.2008, 14:18
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

единственная прична почему мой скпипт не работает, судя по всему пробел, случайно закравшийся в строку с параметрами.
а иак он принципиально ничем не отличается от вашего, кроме списка параметров еще
Ответить с цитированием
  #5 (permalink)  
Старый 10.07.2008, 13:58
Аватар для Bad Request
Интересующийся
Отправить личное сообщение для Bad Request Посмотреть профиль Найти все сообщения от Bad Request
 
Регистрация: 10.07.2008
Сообщений: 26

Как раз хотел задать тот же самый вопрос!
По-моему, скрипт Гвоздя гораздо лаконичнее и это его красит. Только вот в Опере почему-то окно централизуется плохо - отображается ближе к нижней части окна.
Ответить с цитированием
  #6 (permalink)  
Старый 12.10.2009, 20:08
Ragnarok
 
Сообщений: n/a

Да и в Firefox'e тоже.
Ответить с цитированием
  #7 (permalink)  
Старый 16.10.2009, 01:30
tsugi@ukr.net
 
Сообщений: n/a

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%
Ответить с цитированием
  #8 (permalink)  
Старый 17.10.2009, 04:26
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

нету надежного способа отцентрировать окно (http://habrahabr.ru/blogs/javascript/20916/). left, top - для верхнего левого угла окна, а width, height - для содержимого
Ответить с цитированием
  #9 (permalink)  
Старый 21.10.2009, 11:11
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Цитата:
История лестниц
Ответить с цитированием
  #10 (permalink)  
Старый 21.10.2009, 11:23
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

O_o топиком ошибся?
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск