IMHO.WS

IMHO.WS (http://www.imho.ws/index.php)
-   Веб-программирование (http://www.imho.ws/forumdisplay.php?f=29)
-   -   Значение переменой JavaScript (http://www.imho.ws/showthread.php?t=22681)

qwebec 17.02.2003 22:49

Значение переменой JavaScript
 
Постановка задачи

JS определяет разрешение (в заголовке html страницы)

<script language="JavaScript">
var height=0;
var width=0;
if (self.screen) { // for NN4 and IE4
width = screen.width
height = screen.height
}
else if (self.java) { // for NN3 with enabled Java
var jkit = java.awt.Toolkit.getDefaultToolkit();
var scrsize = jkit.getScreenSize();
width = scrsize.width;
height = scrsize.height;
}
</script>


а в теле страницы есть таблица с шириной width
<table width=" ? ">
</table>

вопрос: как оптимально запихнуть в табличный width значение width из JS?


P.S.
и еще может посоветует JS скрипт определяющий разрешения и работающий под большинством броузеров

Stasik 18.02.2003 07:59

<table width="100%">
</table>

qwebec 18.02.2003 09:32

Stasik
лучше вообще не отвечай... любишь тень на плетень наводить :o(

ответ оказался прост:
<script>
document.write('<table width=\"'+width+'\">');
</script>

Stasik 18.02.2003 09:50

извини, а чем тебе 100% не нравится? имхо эфекто такойже + нет проблем с ресайзингом.......

qwebec 18.02.2003 09:58

Stasik
задумка такая
800X600 - width=100%
1024X768 - width=90%
1280X1024 - width=80%

вот собственно это вкратце :)

Stasik 18.02.2003 10:05

ну так бы и сказал....

if(width => 1024){widthpro='100%';}
elseif(width = 768){widthpro='90%';}
elseif(width =< 600){widthpro='80%';};
document.write('<table width=\"'+widthpro+'\">');

yea? :xex:

qwebec 18.02.2003 10:23

nope! почти так

имхо так и только так + ко всему это еще и работает!

<script language="JavaScript">
var height=0;
var width=0;
if (self.screen) { // for NN4 and IE4
width = screen.width
height = screen.height
}
else if (self.java) { // for NN3 with enabled Java
var jkit = java.awt.Toolkit.getDefaultToolkit();
var scrsize = jkit.getScreenSize();
width = scrsize.width;
height = scrsize.height;
}
if (width == "1024") {
width = '90%';
}
else if (width == "1280") {
width = '80%';
}
else if (width == "800") {
width = '100%';
}
</script>
------------------------------------------
<script>
document.write('<table width=\"'+width+'\">');
</script>
<noscript>
<table width="80%" cellspacing="0" cellpadding="0">
</noscript>

Stasik 18.02.2003 10:47

не ври :gigi::gigi::gigi: у меня вот 1600х1200.... и есть ещё дети с браузами 640х480 + всякая экзотика...... делай или больше меньше или else....

qwebec 18.02.2003 11:01

Stasik
ок! тут ты пожалуй прав, и как бы мне этого не хотелось - придется в данном вопросе с тобой согласиться :)
=> рациональнее

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

Ghost 18.02.2003 17:14

Прочитал тут в одной умной книжке о том, что возможна вот такая вот пакость:
Код:

<table width=&{screen.width};>
Попробовал сам - ни хрена не вышло. Правда книга заточена была под скопу, а я проверял в ИЕ (не нравится мне скопа, не ставлю ее принципиально), а может просто где-то лажанулся. Попробуй ты - может у тебя что выйдет.

qwebec 18.02.2003 20:51

Ghost
вот что то подобное я и искал...

будем пробовать, хотя крайне сомнительная конструкция :)

Stasik 19.02.2003 04:36

<table width=&{screen.width};>

никогда не видел

qwebec 19.02.2003 07:10

Stasik
Ghost
ну что корифеи...
видать мой вариант подправленный Stasik'ом не имеет альтернативы :(

кстати больше меньше пишется наоборот >= <= вместо => =<
а в справочнике вообще написано <= =>


Ghost
&{screen.width} мой бродяга отказался интерпретировать

Stasik 19.02.2003 08:13

сорpи... я всегда их путал... :gigi:

AleXXXSoft 20.02.2003 12:26

Идея правильная=) но я делал по другому:
PHP код:

 <head>
 .......
<
script language="javascript">
if(
screen.width>1024){
lm=(screen.width-1024)/2;
document.write('</HEAD><BODY bgcolor=#CBCED0 topmargin=0 bottommargin=0 style="margin-bottom:0; margin-top:0; margin-left:'+lm+' ; margin-right:'+lm+' ">');
}else{
document.write('</HEAD><BODY bgcolor=#CBCED0 topmargin=0 bottommargin=0 style="margin-bottom:0; margin-top:0; margin-left:0 ; margin-right:0 ">');
};
</script>
<nosript>
</HEAD><BODY bgcolor=#CBCED0 topmargin=0 bottommargin=0 style="margin-bottom:0; margin-top:0; margin-left:0 ; margin-right:0 ">
</noscript>
....... 

Таким образом в зависимости от разрешения вся страница центруется по экрану и определенной ширине (1024 там) Проверено, работает во всех броузерах кроме Линкс=)))

Stasik 21.02.2003 03:54

погоди.. а так?
<table width="1024" align="center"></table>
ИМХО тоже самое?

qwebec 21.02.2003 04:54

Stasik
блин, а я вот не понял твоего последнего сабжа...
AleXXXSoft же говорил про отступы

кстати моя фишка не проходит в Netscape 7, этот засранец отказывается определять разрешение :(

qwebec 21.02.2003 04:57

и еще...
кто нибудь знает почему быстрый ответ в нашем форуме не доступен если смотреть через шестую Оперу?

AleXXXSoft 21.02.2003 10:15

Цитата:

Как писал qwebec
Stasik
блин, а я вот не понял твоего последнего сабжа...
AleXXXSoft же говорил про отступы

кстати моя фишка не проходит в Netscape 7, этот засранец отказывается определять разрешение :(

Отвечаю всем: ( =) )

-
по поводу 1024 ширины, нет несколько не то там...например в 800х600 и1024х768 страница будет в полный экран, все что больше будет резаться по ширине ровно в 1024х768 (при условии распахнутого во весь экран окна броузера)

-
по поводу нетскейпа, он определяет разрешение один раз при старте=)) а когда он запущен и ты меняешь разрешение - он на это не реагирует=)) забей=))

-
6 опера - саксь, ставь 7-ю..... она по крайней мере со всем нормально работает=) кроме как с моим чатом=)

qwebec 21.02.2003 22:20

AleXXXSoft
молодца, а я и не знал что шкаф так определяет разрешение...
сеньк за инфу!


Часовой пояс GMT +4, время: 23:06.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.