Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   screen.width в браузере opera (https://javascript.ru/forum/css-html/20746-screen-width-v-brauzere-opera.html)

cyklop77 15.08.2011 22:56

screen.width в браузере opera
 
скажите пожалуйста чем можно заменить такой скрипт в браузере opera?

if (screen.width < '1024') 
{
alert(6);
document.write ('<link rel="stylesheet" type="text/css" href="css/alt_styles.css" />'); 
}


в других браузерах он работает.

и если не трудно поясните с чем это связано. как я понимаю в модели js для opera нет свойства width?

B@rmaley.e><e 15.08.2011 23:38

Неправильно понимаете.
alert( screen.width )


Цитата:

Сообщение от cyklop77
поясните с чем это связано

Что связано? Вы показали скрипт и сказали, что он не работает. А что он должен делать-то?

cyklop77 16.08.2011 00:00

B@rmaley.e><e , подключать определенный файл стилей в зависимости от разрешения экрана.
у меня появилось подозрение, что сам скрипт все таки рабочий, но document.write дописывает тэг <link> не между тэгами <head></head>/ поэтому опера глючит. возможно такое?

B@rmaley.e><e 16.08.2011 00:03

У Вас там даже alert есть, он-то куда девается? Если он срабатывает, проблема, очевидно, не в screen.width.

cyklop77 16.08.2011 00:13

извиняюсь за тупизм. еще раз.

есть скрипт
alert(0);
	if (screen.width < '1024') 
	{
		alert(6);
	   document.write ('<link rel="stylesheet" type="text/css" href="css/alt_styles.css" />'); 
	}
	else
	{
		document.write ('<link rel="stylesheet" type="text/css" href="css/basic_styles.css" />'); 
	}


разрешение моего монитора 1200 на сколько то.
скрипт срабатывает, результат - подключение файла стилей basic_styles.

если меняю разрешение на 800 x 600 , то скрипт не срабатывает и alert(6) не выводится(подключается опять basic_styles).

alert(0) выводится в любом случае.

во всех браузерах, кроме опера таких проблем нет, то есть скрипт работает корректно (подключает файлы стилей, соответствующие разрешению экрана)

B@rmaley.e><e 16.08.2011 00:19

Ну так замените alert(0) на alert(screen.width) (а ещё лучше — alert(JSON.stringify(screen))) и посмотрите, чему равно width в Опере.

cyklop77 16.08.2011 00:40

сделал как вы советовали.
при моем рабочем разрешении (1280 на сколько то)
во всех браузерах alert(screen.width) =1280.

далее меняю разрешение на 800х600 при помощи intel graphic media accelerator driver.
во всех браузерах alert(screen.width) =800.
в опера alert(screen.width) =1280.

devote 16.08.2011 01:13

а зачем цифра 1024 в ковычках??
if (screen.width < '1024')

devote 16.08.2011 01:14

Цитата:

Сообщение от cyklop77
в опера alert(screen.width) =1280.

Может после смены разрешения стоит перезапустить оперу

B@rmaley.e><e 16.08.2011 01:26

Попробуйте screen.availWidth вместо width.


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