Страницы: 1
в отличии от setAttribute который может не проканать
Да, согласен, лучше было бы:
if (objImage.setAttribute) { objImage.setAttribute('src', strURL); objImage.setAttribute('alt', objLink.hasAttribute('title') ? objLink.getAttribute('title') : ''); } else { objImage.src = strURL; }
править код или же пользоваться исключительно объектную модель это дело автора
IMHO - лучше стандартное решение (потому что оно где уже работает там и будет поддерживаться в разумно обозримом будующем вне зависимости от идей разработчиков что из "нестандарта" держать, а что нет), а вот если оно оказывается недоступно - тогда известные "костыли".
Но так - да, кому как нравится, разумеется.
не вздумайте удалять объекты через innerHTML можете попасть на интересные багофичи, только через DOM
Большие конструкции с кучей всего - да, слышал что бывают проблемы. С одной ссылкой (как здесь) никогда не встречал, ни с добавлением ни с удалением. =/ Можно поп
…http://aaiddennium.online.lt/blog/2006/06/12/xhtml-sounds-well/
Как вариант.
(Найдено в Google за пару минут, сам не проверял, если не идет - сорри.)
Второй вариант - Flash.
Под конкретный браузер косить - еще куда ни шло, но под машину - маразм
Это не закос под конкретную машину. Это проверка в "нестандартных" условиях, причем "нестандартных" - именно в кавычках, потому как 96 dpi это вполне нормальный стандарт для Mac OS и *nix/X11. Вдобавок есть пользователи, которые и под Windows со стандартными шрифтами и 72dpi ставят увеличение шрифтов в браузере из-за плохого зрения или маленьких экранов.
В общем, IMHO, это не закос, а вполне нормальная практика, как, скажем, просмотр сайта под разными браузерами или разными разрешениями (которые видеорежимы в смысле) экрана.
Gentoo GNU/Linux, Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.5) Gecko/20060804 Firefox/1.5.0.5, - разлетается, да.
Причина - шрифты чуть больше чем "положено бы" (другое dpi и другие шрифты). "Исправляется" после пары нажатий Ctrl-минус, уменьшением размера, но в реале же пользователь так делать не будет перед заходом, так что надо править на самом сайте.
Предложение - сделать у себя Ctrl-плюс до начала разлетания и править и тестировать так. В идеале - сделать "резину", поменяв структуру и поставив в середину фон-"тянучку", благо нижняя половина это вроде бы позволяет. Другой вариант - жестко зажать максимальную высоту и влепить скроллинг (простой overflow: visible или свой на скриптах и с overflow:visible откатом). Третий, совсем тупой вариант - добавить запас по высоте процентов до 120 (но смотреться будет, разумеется, плохо).
[code]<script type="text/javascript">
/*<![CDATA*/
function replaceWithImage(objLink, strURL) {
var objContainer = objLink.parentNode;
// Проверка на поддержку нужной функциональности DOM2
if (objContainer && document.createElement && objContainer.replaceChild && objLink.getAttribute) {
var objImage = document.createElement('img');
if (objImage) {
objImage.setAttribute('src', strURL);
objImage.setAttribute('alt', objLink.hasAttribute('title') ? objLink.getAttribute('title') : '');
objContainer.replaceChild(objLink, objImage);
return false;
}
} else {
// Костыль для старых браузеров, не поддерживающих DOM2, но реализующих innerHTML (IE5.x)
if (objContainer.innerHTML) {
var strAlt = '';
if (objLink.title) { strAlt = objLink.title; }
objContainer.innerHTML = '<img src="' + strURL + '" alt="' + strAlt + '" />';
return false;
}
}
return true;
}
/*]]>*/
</script>
<
…Страницы: 1