Тэг ‘кроссбраузерность’

javascript изменяем свойство action формы - объекта form

Потребовалось перед отправкой формы изменить “адресат” - action у формы. По идее ничего сложного -
document.form1.action = 'new_address.html';
или аналогичные

document.getElementById('form1').action = 'new_address.html';
document.forms[0].action = 'new_address.html';

однако, такого рода конструкция работает везде, кроме internet explorer…
Объясняется это тем, что в IE нет различий между свойствами и атрибутами.
Поиск подсказал, что для изменения action у формы можно использовать setAttribute
document.form1.setAttribute("action","'new_address.html")
Но и в этом случае, internet explorer не порадовал.
Однако, различия, все-таки обнаружены - оба варианта для internet explorer:
- для случая “form1.action = …” браузер выдал ошибку “object doesn’t support …”;
- для случая “form1.setAttribute();” ie отправляет по старому адресу;

После очередной порции поисков по интернету, размышления над JavaScript мануалами изобразил что-то вроде:

o=document.getElementById('form1');
o.setAttribute("action","new_address.html"); // в IE "пустышка", но ошибку не выдает
// рабочая конструкция для IE - изменяет action для формы путем перебора всех атрибутов
for (var i=0; i < o.attributes.length; i++) {
if (o.attributes[i].nodeName == 'action') {
o.attributes[i].nodeValue = 'new_address.html';
break;
}
}

Понимаю, что решение далеко от идеального, однако, работает :)
Да здравствует IE!..
ps. В очередной раз встает вопрос “А для кого стандарты?” :)

Опубликовано Июль 1, 2009 | автор: levik  |  Комментарий (1) »

Округление размеров в различных браузерах

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

При установке font-size:87%; IE 6, IE 7 , Firefox отображали надписи шрифтом в 12px, opera - 11px. При 88% - достигалось единообразие (12px) . Почему-то я не успокоился… :) Пошел дальше - при 86% ситуация такая же как при 87. Но при 85 процентах… IE6 и его младший (т.е. более поздний) брат показывали всё так же 12-px шрифтом, а Firefox стал солидарным с Oper’ой - перешел на 11px. При 84 - снова пришли к однообразию. :)

# Браузер 88% 87% 86% 85% 84%
1 IE 6,7 12px 12px 12px 12px 11px
2 Firefox 12px 12px 12px 11px 11px
3 Opera 12px 11px 11px 11px 11px

Опубликовано Июль 12, 2008 | автор: levik  |  Нет комментариев »