Шаг 26 - Передаем разрешение монитора в CGI скрипт

Пришел вот такой вопрос:

	Не могли вы бы подсказать, как передать данные 
	из javascript програмы в perl (CGI). 
	Меня в частности интересует вопрос об разрешении 
	монитора пользователя, но я это могу определить 
	только с помощью javascript, а как передать эти 
	данные через CGI на сервер незнаю.
	--
	Женя Краус

Интересная задачка :-) Встречный вопрос: Вы видели как проделывают такую штуку счетчики spylog или top.list.ru ? Если не видели, то давайте посмотрим.

Первым делом разберемся с тем, как получить это самое разрешение монитора, так как многие наверняка не умеют это делать и тоже хотят научиться. Вот смотрите код:

<script language=javascript1.2>
	document.write(screen.width,'x'+screen.height); 
</script>

Заметьте прежде всего, что получение разрешения монитора возможно только с помощью JavaScript 1.2, т.е. более новой версии. В данном примере у Вас выведется разрешения монитора, например у меня выводится:

1024x768

Таким образом строку с разрешением мы можем всегда получить. Теперь давайте разберемся с тем, как передавать эти данные в скрипт.

Передать данные можно несколькими путями. Один из таких путей как раз используют вышеупомянутые счетчики. Они передают данные прямо вместе с сылкой, т.е. внутри URL. Если Вы внимательно читали шаги раньше, то знаете, что такие данные передаются методом GET скрипту и хранятся внутри переменной окружения QUERY_STRING. Теперь для примера скрипт, который будет передавать разрешение таким способом.

<script language=javascript1.2> 
document.write("<a href=test.cgi?screen=",
screen.width+'x'+screen.height,">Click</a>"); 
</script>

В результате у вас внутрь документа встроится код html:

<a href=test.cgi?screen=1024x768>Click</a>

В данном случае данные будут передаваться только при нажатии на ссылку, поэтому также как и счетчики используйте тег <img ...>.

Второй способ, возможно именно он и нужен, будет передача этих данных через форму. В этом случае надо будет завести скрытый параметр в форме, например обзовем его scr. Выглядеть наша форма будет следующим образом:

<form action=test.cgi method=POST name=form1>
<input type=text name=data>
<input type=hidden name=scr>
<input type=submit>
</form>

Теперь для присвоения этому параметру значения будем использовать следующий скрипт:

<script language=javascript1.2>
 document.form1.scr.value=screen.width+'x'+screen.height; 
</script>

После того, как браузер интерпретирует этот код в скрытом параметре формы окажется разрешение экрана.

Например, вот какие данные отправились из формы при использовании action=mailto:dron@mjk.msk.ru:

data=hehehe
scr=1024x768

Помоему это именно то, что нам и нужно... Давайте теперь узнаем, что за железо у наших посетителей :-)))


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Кузин Андрей.