Динамическое определение разрешения монитора

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

Для этой цели можно использовать небольшой Java-скрипт. Главная задача - это определить разрешение, а что после этого делать (вывести сообщение или перейти на другую страницу) - дело десятое. В общем случае принцип таков: сначала загружается страница-бланк, содержащая скрипт (ее также можно параллельно использовать для динамического определения браузера), затем автоматически осуществляется переход на соответствующую страницу, в зависимости от выполнения тех или иных условий.

<html>
<body>

<script language="JavaScript">
<!--
// Сначала определяем разрешение
if (self.screen) { // для браузеров 4-тых версий
width = screen.width
height = screen.height
}
else if (self.java) { // для NN3 (enabled Java)
var jkit = java.awt.Toolkit.getDefaultToolkit();
var scrsize = jkit.getScreenSize(); 
width = scrsize.width; 
height = scrsize.height; 
}else{
width = height = 'x' // для прочих браузеров
}
// Теперь выполняем нужное действие
if (width == 640) {
location.href='480x640/index.html' }
else if (width == 800) {
location.href='600x800/index.html' }
else if (width == 1024) {
location.href='768x1024/index.html' }
else if (width == 1280) {
location.href='hi-resolution/index.html' }
else {
location.href='default_resolution/index.html' }
//-->
</script>

</body>
</html>

Если вам не лень делать более одной версии страниц, можно использовать подобный HTML-код в качестве дефолтовой страницы вашего сайта. Во избежание проблем с браузерами, не поддерживающими JavaScript, в контейнер <HEAD> можно добавить мета-инструкцию переадресации:

<META HTTP-EQUIV=REFRESH CONTENT="2; 
URL=default_resolution/index.html">
<!-- Если в течении 2 секунд браузер не выполнит наш 
скрипт, то произойдет принудительный переход
 на указанную страницу -->

Вот и все.


Все заметки: 1 2 3 4 5 6 7 8 9 11 12 оглавление