| 
	| 
	
	| 
		
	| 
			
			 
			
				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 топиком ошибся? |  |  |  |