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? |
Неправильно понимаете.
alert( screen.width ) Цитата:
|
B@rmaley.e><e , подключать определенный файл стилей в зависимости от разрешения экрана.
у меня появилось подозрение, что сам скрипт все таки рабочий, но document.write дописывает тэг <link> не между тэгами <head></head>/ поэтому опера глючит. возможно такое? |
У Вас там даже alert есть, он-то куда девается? Если он срабатывает, проблема, очевидно, не в screen.width.
|
извиняюсь за тупизм. еще раз.
есть скрипт 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) выводится в любом случае. во всех браузерах, кроме опера таких проблем нет, то есть скрипт работает корректно (подключает файлы стилей, соответствующие разрешению экрана) |
Ну так замените alert(0) на alert(screen.width) (а ещё лучше — alert(JSON.stringify(screen))) и посмотрите, чему равно width в Опере.
|
сделал как вы советовали.
при моем рабочем разрешении (1280 на сколько то) во всех браузерах alert(screen.width) =1280. далее меняю разрешение на 800х600 при помощи intel graphic media accelerator driver. во всех браузерах alert(screen.width) =800. в опера alert(screen.width) =1280. |
а зачем цифра 1024 в ковычках??
if (screen.width < '1024') |
Цитата:
|
Попробуйте screen.availWidth вместо width.
|
devote,
цифра в кавычках. пробовал и без кавычек. результат один и тот же. пробовал screen.availWidth результат тот же. перезапуск оперы после смены разрешения помог. всем спасибо) |
все таки document.write пишет тэг <link> в неположенное спецификацией место. в итоге валидатор ругается. не подскажете какими средствами можно прописать тэг <link> в определенное место в документе. например между тэгами <head></head>.
вот адрес рабочей страницы, если интересно http://h23771.srv3.test-hf.ru/test_25_2/ вот замечания валидатора http://validator.w3.org/check?uri=http%3A%2F%2Fh23771.srv3.test-hf.ru%2Ftest_25_2%2F&charset=%28detect+automatical ly%29&doctype=Inline&group=0 |
<script type="text/javascript"> //<!-- if (screen.width < 1024) { 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" />'); } //--> </script>Вот так сделай и все будет гуд |
спасибо
|
cyklop77,
ты не подумай, я не прикалываюсь... Говорю серьезно. Просто смотрю на код выше что я написал, кажется что я мол прикололся закрыв его в комментарий. Но это не так. Как известно, внутри тега script комментарии ставятся двумя слешами или слеш-звезда. А я закомментил HTML коммент внутри скрипта, тоесть скрипт работать будет нормально, и при этом w3c ничего не ругнеться, так как он не обращает внимание на тег script и когда находит html комментарий, считает это простым комментарием, но в реале там вполне работающий код. |
devote, только правильнее (в случае XHTML) использовать секции CDATA.
|
Цитата:
|
и не думал. спаибо за интересный приём:dance:
|
Цитата:
Цитата:
|
подключаю css динамически потому, что для определенного разрешения экрана включается определенная разметка. то есть например пользователи с разрешением мониторов 800x600 не получат очень больших блоков и шрифтов и лишних полос прокрутки соответственно.
|
Цитата:
|
Цитата:
|
Цитата:
Цитата:
Цитата:
|
Цитата:
|
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
|
Вложений: 1
Цитата:
Я тоже давно как то писал костыль для работы с круглыми углами, кросс-браузерное решение, знаю что много мусора понаписал но писалось быстро, но зато не нужно делать лишних телодвижений, просто подключаем скрипт после jQuery и работаем с параметром border-radius как будто он есть в IE, вот: |
Цитата:
|
Уберите апостроф. Как можно сравнивать числительное с текстовым в сторону меньшинства?
|
Часовой пояс GMT +3, время: 20:45. |