cross-browser web development
Правильно ли я понимаю что при изменении атрибута class элемента страницы - msie не пересчитывает расположение и оформление элементов на странице заново?Неправильно понимаешь.
Прежде чем задавать такие тупые вопросы, сам бы попробовал.
Чем в виндовс проверяют правильность работы Javascript? Script Debugger'ом?Не в виндовс, а в ИЕ. Включением алертов об ошибках. Хотя удобства джава консоли в лисе он не обеспечивает.
Не в виндовс, а в ИЕ. Включением алертов об ошибках. Хотя удобства джава консоли в лисе он не обеспечивает.Забавная такая есть у меня страничка: ни одного алерта об ошибке, и не работает.
Поставил script debugger - жутко неудобная штука, вот и интересно, те кто ваяет под ИЕ чем пользуются.
они по дефолту выключены
<html>
<head>
<title>test</title>
<script type="text/javascript">
setTimeout(function{
document.getElementById('div').getAttribute('class')=='active' ?
document.getElementById('div').setAttribute('class','inactive') :
document.getElementById('div').setAttribute('class','inactive');},
3000);
/*
setTimeout(function{
document.getElementById('div').className=='active' ?
document.getElementById('div').className='inactive' :
document.getElementById('div').className='active';},3000);
*/
</script>
<style type="text/css">
div.active {
background-color: #FAFAFA;
}
div.inactive {
background-color: #AAAAAA;
}
</style>
</head>
<body>
<div id="div" class="active">Simple div</div>
</body>
</html>
Закомментарен - правильный вариант
![](/images/graemlins/smile.gif)
Где-нибудь написано почему getAttribute и setAttribute не работают в ИЕ? (точнее, они работают, но эффекта не производят)
Список различий браузеров?Довольно обширен, Борьба модели MSIE vs Gecko, различия dhtml- и dom- методов работы, особенности интерпретации некорректного html (пример: <b><i>a</b></i>) и мерзкие фичи с реализацией всяких стандартов (css, css2, css3...)
С ходу пара ссылок:
http://www-128.ibm.com/developerworks/web/library/wa-ie2mozg...
http://www.mozilla.org/docs/dom/domref/dom_shortIX.html
Существуют ли Javascript'овые библиотеки со стандартизированным API, скрывающие различия между браузерами?Шаги в этом направлении - библиотека klayers от Сергея Круглова
Чем в виндовс проверяют правильность работы Javascript? Script Debugger'ом? ( в файрфокс есть javascript console, например, и extensions).Я смотрю стандартным дебаггером, обычно его хватает.
Правильно ли я понимаю что при изменении атрибута class элемента страницы - msie не пересчитывает расположение и оформление элементов на странице заново?Хз, посмотри, если чо - двигайся в сторону recalc. Вообще врядли.
Где-нибудь написано почему getAttribute и setAttribute не работают в ИЕ?Потому что не тот атрибут ставишь.
setAttribute('className', ... );
Ты не прав. Атрибута className нет. Есть атрибут class и свойство className. Почитай ссылку, которая дана выше.
<style>
.s1 { background-color:red; };
.s2 { background-color:green; };
</style>
<div id="abc" class="s1">lkjh</div>
<a href='javascript:document.getElementById("abc").setAttribute("className","s2")'>lkjh</a>
Отлично работает в ИЕ6.
When setting the CLASS attribute using this method, set the sName to be "className", which is the corresponding Dynamic HTML (DHTML) property.
Ответ осатётся прежним - неправильно.
Можно менять через жопу, тогда то, какой это атрибут, и какого элемента - неважно.
А можно менять нормально - и тогда всё будет персчитано.
![](/images/graemlins/grin.gif)
2 & : Большое спасибо, хорошие ссылки.
Klayers - старые... Функциональность ограничена. Так что и правда это только шаг в нужном направлении.
Про эмуляторы никто не в курсе?
Так я и говорю, что IE bдёт своим путём. По стандарту так быть не должно.
этой ссылке? Или по этой? ![](/images/graemlins/lol.gif)
Дай мне ссылку на w3c, из которой будет понятно, почему ИЕ в этом плане не удовлетворяет стандарту.
По какому стандарту? По ![](/images/graemlins/lol.gif)
Дай мне ссылку на w3c, из которой будет понятно, почему ИЕ в этом плане не удовлетворяет стандарту.
В статье выше всё чётко разжёвано.
<html>
<head>
<title>test</title>
<script type="text/javascript">
</script>
<style type="text/css">
a:link {
color: #000000;
text-decoration:none;
} /* unvisited link */
a:visited {
color: #000000;
text-decoration:none;
} /* visited link */
a:hover {
color: #000000;
text-decoration:none;
background-color : #EFEFEF;
} /* mouse over link */
a:active {
color: #000000;
text-decoration:none;
} /* selected link */
</style>
</head>
<body>
<a>1111111111</a><br/>
<a>2222222222</a><br/>
<a>3333333333</a><br/>
</body>
</html>
Здесь ИЕ не выделяет <a></a> при проведении по нему мышкой. Почему?
(погуглив нашел что a:hover не выделяет в элементах списка, но здесь не тот случай)
В firefox 1.0.7, firefox 1.5, opera 8.52 - работает.
http://msdn.microsoft.com/workshop/author/dhtml/reference/pr...
Там же написано - для _ссылок_.
А у тебя ссылка где?
И вообще,
This pseudo-class is defined in CSS, Level 2 (CSS2)А полную поддержку CSS2 врроде пока что никто не обещает (во всяком случае, недавно было так).
А у тебя ссылка где?
А посмотреть?
Если не знаешь ответ то лучше не пиши.
Блок a - ещё не ссылка.
А если ты туда допишешь href="xxx" (чтобы стал нормальной ссылкой) - всё заработает.
А я посмотрел.
Блок a - ещё не ссылка.
А если ты туда допишешь href="xxx" (чтобы стал нормальной ссылкой) - всё заработает.
Спасибо.
А можешь по своей ссылке показать где такое написано? Или ты как ребенок?
http://msdn.microsoft.com/workshop/author/dhtml/reference/ob...
Всё ведь человеческим языком сказано:
Designates the start or destination of a hypertext link.
The a element requires the href or the name property to be specifiedЧтобы это было ссылкой, очевидно, требуется свойство href.
Чтобы это было ссылкой, очевидно, требуется свойство href.Ты думаешь я английский не понимаю?
По-моему тут еще про name свойство упоминается. Так вот с ним тоже не работает.
А мне нафиг не нужно href, я из <a/> кнопочки делаю. И видимо проще всего ловить mouseout и mouseover всякие.
По-моему тут еще про name свойство упоминается. Так вот с ним тоже не работает.Так вот, с name будет не link.
Если бы ты читал внимательнее, понял бы это с самого начала.
я всегда пользуюсь window.alert для моих задач всегда хватало, хотя приходилось писать нетривиальные скрипты по нескольку десятков килобайт
http://www.quirksmode.org/css/condcom.html
Conditional comments only work in Explorer on Windows, and are thus excellently suited to give special instructions meant only for Explorer on Windows. They are supported from Explorer 5 onwards, and it is even possible to distinguish between 5.0, 5.5 and 6.0.
I myself use conditional comments in the top frame. If you view its source you'll see
<>
http://labs.silverorange.com/images/tabsupdate/index.html - cross-browser CSS Tabs
Существуют ли Javascript'овые библиотеки со стандартизированным API, скрывающие различия между браузерами?http://www.dojotoolkit.org
http://freshmeat.net/projects/dojo/
Размер текстового поля - можно (теоретически) узнать как size. А сколько он в пикселах?
Т.е. задача такая: есть знать "на кнопке в <input typ=file/> мы или нет"
ЗЫ: Посмотрел - ИЕ7 у меня стоит с конца марта... хрень какая-то...
7-й еще в общем-то не вышел, так что проверять на нем конечно можно, но народ будет смотреть 5-м и 6-м.
![](/images/graemlins/frown.gif)
Оставить комментарий
pilot
Существуют ли Javascript'овые библиотеки со стандартизированным API, скрывающие различия между браузерами?(как пример - event target в firefox и msie - по-разному ищется).
Список различий браузеров?
Чем в виндовс проверяют правильность работы Javascript? Script Debugger'ом? ( в файрфокс есть javascript console, например, и extensions).
Правильно ли я понимаю что при изменении атрибута class элемента страницы - msie не пересчитывает расположение и оформление элементов на странице заново?
Насколько хороши "эмуляции IE" для мозиллы и файрфокса? какие?