Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Разрешение экрана
 
 автор: Odin Kg   (21.09.2004 в 12:26)   письмо автору
 
 

А можно ли как-нибудь узнать разрешение экрана клиента, чтобы расположение данных подогнать?

   
 
 автор: cheops   (21.09.2004 в 12:54)   письмо автору
 
   для: Odin Kg   (21.09.2004 в 12:26)
 

Средствами PHP это сделать нельзя, так как он исполняется на сервере и ничего о клиенте знать не может, но эту задачу можно решить при помощи JavaScript, передав разрешение через строку запроса. Пусть имеется файл index.html
<Script Language="JavaScript"> 
var height=0; 
var width=0; 
colorDepth = screen.colorDepth; 
if (self.screen) 

  width = screen.width 
  height = screen.height 

else if (self.java) 

  var jToolKit = java.awt.Toolkit.getDefaultToolkit(); 
  var scrsize = jToolKit.getScreenSize(); 
  width = scrsize.width; 
  height = scrsize.height; 

if (width > 0 && height > 0) 

  // Производим перенаправление на скрипт view.php 
  window.location.href = "http://localhost/view.php?
                          width=" + width +
                         "&height=" + height +
                         "&color=" + colorDepth;
} else exit(); 
</Script>

Тогда в файле view.php разрешение можно узнать следующим образом
<?php
echo "Ширина : ".$_GET['width'];
echo 
"Высота : ".$_GET['height'];
echo 
"Цветовое разрешение : ".$_GET['color'];
?>

Пример, конечно, нужно заточить под собственные цели... Это не слишком элегантное решение, так как каждый раз придётся осуществлять редирект средствами JavaScript, например, мы отказались от сбора статистики разрешений в наших счётчиках, тем более процентное соотношение разрешений в рунете общедоступно...

   
 
 автор: sancho   (30.11.2004 в 10:05)   письмо автору
 
   для: cheops   (21.09.2004 в 12:54)
 

А что такое self.screen

   
 
 автор: glsv (Дизайнер)   (30.11.2004 в 12:30)   письмо автору
 
   для: sancho   (30.11.2004 в 10:05)
 

self – это синосим текущего окна (объект window)
screen - объект, содержащий свойства экрана (размер и кол-во цветов)

Здесь self.screen – это проверка доступен ли объект screen, чтобы узнать из его свойств размер экрана.
Если не доступен, то далее проверяется не включена ли Java у посетителя

else if (self.java)

Если включена, размер экрана берется с помощью Java

   
 
 автор: sancho   (01.12.2004 в 16:35)   письмо автору
 
   для: glsv (Дизайнер)   (30.11.2004 в 12:30)
 

cheops говорит:"Дизайнер, как-то делает так что-бы его дизайн сам подстраивался под разрешение клиента..." , так вот я делаю вот так

<script language="JavaScript" type="text/javascript">
function change_style()
{
  if(screen.width==800)
    { 
     document.body.style.fontSize="10px"
    } 
   if(screen.width==1024) 
    {
  document.body.style.fontSize="50px"
     }

</script> 

но ничего не происходит, даже ошибки не выдаёт, в чем дело?

   
 
 автор: glsv (Дизайнер)   (01.12.2004 в 22:39)   письмо автору
 
   для: sancho   (01.12.2004 в 16:35)
 

Вам нужно вызывать эту функцию на выполнение.
Это можно сделать по событию onLoad в теге <body>
<body onload="change_style()">

А это полный код.

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title></title>
<script language="JavaScript"> 
function change_style() 

  if(screen.width==800) 
  { 
    //document.body.style.fontSize="10px" 
  } 
  if(screen.width==1024) 
  { 
    document.body.style.fontSize='50px' 
  }
}   
</script> 
</head>
<body onload="change_style()">
текст
</body>
</html>

   
 
 автор: sancho   (02.12.2004 в 09:24)   письмо автору
 
   для: glsv (Дизайнер)   (01.12.2004 в 22:39)
 

Согласен, так работает, а если в теле вставить, например:

<body onload="change_style();">
<div id="div_top">
   <table border=1 cellspacing='0' style='table-layout:fixed'\n>
    <tr>
         <td>qqqqqqqq</td>
         <td>zzzzzzzz</td>
    </tr>
</table>
</div>
</body>

то не реагирует ни как, вообще?

   
 
 автор: P@Sol   (11.08.2005 в 15:08)   письмо автору
 
   для: cheops   (21.09.2004 в 12:54)
 

а как значение ширины и высоты передать в html?

   
 
 автор: cheops   (21.09.2004 в 13:06)   письмо автору
 
   для: Odin Kg   (21.09.2004 в 12:26)
 

Дизайнер, как-то делает так что-бы его дизайн сам подстраивался под разрешение клиента, правда на сколько я понимаю, работа не для слабонервных...

   
 
 автор: LimP   (21.09.2004 в 20:27)   письмо автору
 
   для: cheops   (21.09.2004 в 13:06)
 

да,точно говорит cheops все размеры окна и вообще управление видом браузера это работа JavaScript...

   
 
 автор: LimP   (21.09.2004 в 20:52)   письмо автору
 
   для: LimP   (21.09.2004 в 20:27)
 

вот можешь вот так создать (это если будешь создавать окно с этими параметрами)

<HTML>
<HEAD>
<TITLE>Окна,определяемые пользователем</TITLE>
<SCRIPT LANGUAGE="JavaScript">
<!--
function opnewWin(s)
{
  winank = window.open("lkr.htm",s,"resizable=1,directories=1")
}
//-->
</SCRIPT>
</HEAD>
<BODY>
<h4>Вывод на  экран диалоговых окон,определенных пользователем </h4>
<form name="form1">
<input type=button value="Открыть задание" OnClick="opnewWin('mywin')">
<input type=button value="Закрыть задание" OnClick="winank.close()">
</form>
</BODY>
</HTML>

вот, примерно вот так можешь попробовать,тока замени вот тут
winank = window.open("lkr.htm",s,"resizable=1,directories=1")
на свой файл...

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования