Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Получить разрешение открытого окна браузера (https://javascript.ru/forum/misc/15338-poluchit-razreshenie-otkrytogo-okna-brauzera.html)

Golovastik 22.02.2011 20:15

Получить разрешение открытого окна браузера
 
Скажите, как получить разрешение открытого окна браузера, а не разрешения экрана?

Golovastik 22.02.2011 20:40

Мне нужно именно не всего браузера,а чисто того окна, который в браузере.
[code]Попробовал для теста написать так.
Код:

<script type="text/javascript">
$b = document.body.clientWidth;
alert($b);
</script>


IE7,IE8 = 1259 px
Mozila = 1263 px
Opera 9.22 = 1257 px
Opera 9.63 = 1264 px
Mozila = 1263 px

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

Golovastik 22.02.2011 21:23

Вроде код работает, но есть одна проблема.

Код:

<script type="text/javascript">
$b = document.documentElement.clientWidth;
alert($b);
if($b<=800)
document.write('<img src="../img/1_14.2.jpg" />
<img src="../img/1_14.3.jpg" /><img src="../img/1_14.4.jpg" />
<img src="../img/1_14.5.jpg" />');
else
{
 document.write('<table><tr><td><img src="../img/1_14.2.jpg" />
</td><td><img src="../img/1_14.3.jpg" /></td></tr><tr><td>
<img src="../img/1_14.4.jpg" /></td><td>
<img src="../img/1_14.5.jpg" /></td></tr></table>');
}
</script>

У меня монитор 19 дюймов и открыто окно браузера на всю страницу.
У меня в результате этого кода, нарисуется табличка 2Х2.
Если у меня будет открыто окно браузера шириной меньше 800 пикселей, у меня каждая картинка перейдёт на другую строку.

Как мне сделать чтоб когда я открою окно браузера на весь экран, а потом буду уменьшать его до меньше 800 шириной сработал скрипт, а не только при обновлении страницы?

Golovastik 22.02.2011 21:57

Попробовал так, не помогает.
Код:

<script type="text/javascript">
function sec(){
$b = document.documentElement.clientWidth;
alert($b);
if($b<=800)
document.write('<div align="center"><img src="../img/1_14.2.jpg" /><img style="padding:5px;"
src="../img/1_14.3.jpg" /><img src="../img/1_14.4.jpg" />
<img style="padding:5px;" src="../img/1_14.5.jpg" /></div>');
else
  {
 document.write('<table cellspacing="5"><tr><td><img src="../img/1_14.2.jpg" />
</td><td><img src="../img/1_14.3.jpg" /></td></tr><tr><td>
<img src="../img/1_14.4.jpg" /></td><td><img src="../img/1_14.5.jpg" /></td></tr></table>');
    }
}
setInterval(sec(),500);

</script>


Golovastik 22.02.2011 22:22

Попробовал написать так, при уменьшении окна браузера, всё что находится за переделами:
<script>.......</script> пропадает, а только одни кратинки показываются в изменённом виде.
Код:

<script type="text/javascript">
window.onresize = sec;
function sec(){
$b = document.documentElement.clientWidth;
alert($b);
if($b<=1240)
document.write('<div align="center"><img src="../img/1_14.2.jpg" />
<img style="padding:5px;" src="../img/1_14.3.jpg" />
<img src="../img/1_14.4.jpg" /><img style="padding:5px;" src="../img/1_14.5.jpg" /></div>');
else
  {
 document.write('<table cellspacing="5"><tr><td><img src="../img/1_14.2.jpg" />
</td><td><img src="../img/1_14.3.jpg" /></td></tr><tr><td><img src="../img/1_14.4.jpg" />
</td><td><img src="../img/1_14.5.jpg" /></td></tr></table>');
    }
}
setInterval(sec(),1);

</script>


Questioner 22.02.2011 22:55

Цитата:

Сообщение от Golovastik
$b = document.documentElement.clientWidth;

Не знаю, но по-моему это не яваскрипт, а смесь его с ПХП.

Aetae 22.02.2011 23:00

Golovastik,
Как вы все достали, ей богу. Попробуйте хотя бы что-нибудь почитать о методах которые используете, или хоть глазком глянуть как делают другие.
Первая ваша проблема в document.write(), но и сама по себе перерисовка страницы 1000 раз в секунду - бред.


Questioner,
Php может и сыграло свою подлую роль с разумом тса, но $ - в js такой-же символ как и любой другой и ничем не хуже a, b или i.

Golovastik 23.02.2011 02:01

Попробовал так для теста, чего-то просто ничего не происходит.
<script type="text/javascript">
document.body.onresize = sec; 
function sec(){
$b = document.documentElement.clientWidth;
if($b<=800)
document.getElementById('fanta').innerHTML = "У вас разрешение маленькое!";
/*document.write('<div align="center"><img src="../img/1_14.2.jpg" /><img style="padding:5px;" src="../img/1_14.3.jpg" /><img src="../img/1_14.4.jpg" /><img style="padding:5px;" src="../img/1_14.5.jpg" /></div>');
*/
else
   {
   /*document.write('<table cellspacing="5"><tr><td><img src="../img/1_14.2.jpg" /></td><td><img src="../img/1_14.3.jpg" /></td></tr><tr><td><img src="../img/1_14.4.jpg" /></td><td><img src="../img/1_14.5.jpg" /></td></tr></table>'); */
document.getElementById('kola').innerHTML = "Сейчас, у вас разрешение больше 800 пикселей";
    }
	
}
setInterval(sec(),1)
</script>

<div id="fanta"></div>
<div id="kola"></div>
...........................................дальше пошёл хтмл


1)Браузер Ие, выдатё такое при запуске,фото вложил.
2)Если запустить данный код в др.браузерах не ИЕ, развёрнутый на весь экран браузер запустить ничего абсолютно не происходит, происходит только в результате уменьшения окна ,что делать?
А браузер мозила не регирует никак, вообще ничего не срабатывает в нём.



Часовой пояс GMT +3, время: 09:10.