>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Флейм http://forum.mozilla-russia.org/viewforum.php?id=14 >Помогите написать javascript прячущий ссылку? http://forum.mozilla-russia.org/viewtopic.php?id=11736 |
flaps > 05-08-2006 05:13:46 |
Помогите написать javascript прячущий ссылку? Нужно, чтобы была ссылка с надписью "показать картинку". При клике на которую ссылка бы исчезала и на её место грузилась бы картинка. Показ картинки делаю так : А как удалить ссылку? |
AKS > 06-08-2006 00:34:31 |
можно попробовать Могу ошибаться... |
drdaeman > 09-08-2006 20:05:48 |
Выделить код Код:<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> <div> <a href="URL такой же страницы но с картинкой (для пользователей без JS)" onclick="return replaceWithImage('URL картинки')"> </div> Вместо <div> можно любой применимый по смыслу контейнер (параграф, для inline - span). Кроме ссылки в контейнере ничего быть не должно (иначе оно пропадет в старых браузерах). edit: Угу, как знал, будут ошибки. Как минимум - один return пропустил :) Fixed. |
Punk_UnDead > 11-08-2006 00:24:35 |
drdaeman править код или же пользоваться исключительно объектную модель это дело автора |
drdaeman > 11-08-2006 01:20:50 |
Да, согласен, лучше было бы: Выделить код Код:if (objImage.setAttribute) { objImage.setAttribute('src', strURL); objImage.setAttribute('alt', objLink.hasAttribute('title') ? objLink.getAttribute('title') : ''); } else { objImage.src = strURL; }
IMHO - лучше стандартное решение (потому что оно где уже работает там и будет поддерживаться в разумно обозримом будующем вне зависимости от идей разработчиков что из "нестандарта" держать, а что нет), а вот если оно оказывается недоступно - тогда известные "костыли".
Большие конструкции с кучей всего - да, слышал что бывают проблемы. С одной ссылкой (как здесь) никогда не встречал, ни с добавлением ни с удалением. Можно поподробнее? |
Punk_UnDead > 11-08-2006 16:43:29 |
drdaeman
я имел ввиду непосредственное удаление через правку innerHTML |
Fili > 14-08-2006 17:53:28 |
Извиняюсь за офтопик, но тему отдельную создавать думаю бессысленно, поэтому решил сюда написать |
Punk_UnDead > 14-08-2006 18:20:37 |
теги все закрыты где положено? |
Fili > 14-08-2006 19:47:41 |
Да, все путем. Исправил все ошибки,валидатор не жалуется.. |
Punk_UnDead > 14-08-2006 21:41:00 |
дай код чтоли, или страничку в сети опубликуй, тогда и посмотрим |
Punk_UnDead > 15-08-2006 12:40:48 |
вы будете смеятся но сегодня сам столкнулся с такой проблемой оказалось сабака порылась в модели отображения, а по русски |
Fili > 20-08-2006 09:50:10 |
Страничку опубликовать не могу тк нет с собой. Дома инета нет, а в клубах кричат что нельзя у них со своих флешек ничего копировать, только через админский комп скидывать на них можно... Надеюсь свкоре появится инет.
Типа пишешь силь такой и все становится как надо? |
AKS > 20-08-2006 12:00:41 |
Это же по-умолчанию... Какие проблемы с этим? |
Punk_UnDead > 20-08-2006 13:46:59 |
AKS |