![]() |
0 Всего найдено: 4
rgcomua
Сообщение
07/12/2006 12:58
Копия темы
javascript замена внешних ссылок . у одного товарища найдена статья (webdesign.maratz.com/lab/.. на тему юзабилити чтобы принудительно не открывать все внешние ссылки в новом окне, а дать пользователю возможность выбора все внешние ссылки автоматически (JavaScript) дублируются ссылкой-иконкой для открытия в новом окне. В комментариях приведен код позволяющий вставлять дополнительные иконки и перед основными ссылками и после.
rgcomua
Сообщение
07/12/2006 13:00
Копия темы
. Задача решена Работающий пример: rg.com.ua/_tmp/js_links/i.. Идея взята остюда: webdesign.maratz.com/lab/.. Код: /************************************************ New window link by Marko Dugonjic, www.maratz.com/ *************************************************/ var path_to_icon = 'icon.gif'; var link_alt_text = 'open link in new window'; var link_title_text = 'Open this link in new window'; function new_window_link(insert_before) { var insert_before = (insert_before == 'undefined') ? false : insert_before; if (!document.getElementById || !document.createTextNode //|| !document.domain ){return false;} var l = document.getElementsByTagName('a'); for (var i = 0; i < l.length; i++){ // just for off-site links url = l[i].href.split('/'); if (!url || !url[2]) {continue;} // just for text links if (l[i].hasChildNodes() && l[i].firstChild.nodeType != 3){continue;} if (url[2].replace(/www\./, '') != document.domain.replace(/www\./, '') && !l[i].getAttribute('target') ){ // create new elements var nwl = document.createElement('a'); var nwl_image = document.createElement('img'); var space = document.createTextNode(' '); // setup image attributes nwl_image.setAttribute('src', path_to_icon); nwl_image.setAttribute('alt', link_alt_text); nwl_image.setAttribute('title', link_title_text); // set link attributes nwl.setAttribute('href', l[i].getAttribute('href')); nwl.setAttribute('target', '_blank'); nwl.setAttribute('title', link_title_text); nwl.className = 'new_window_link'; // append new elements nwl.appendChild(nwl_image); if (insert_before) { l[i].parentNode.insertBefore(space,l[i]); l[i].parentNode.insertBefore(nwl,space); i = i+1; } else { l[i].parentNode.insertBefore(space, l[i].nextSibling); l[i].parentNode.insertBefore(nwl, l[i].nextSibling.nextSibling); } } // if } // for } // function end window.onload = function(){ new_window_link(true); } /**************************************************/
l--_--_--l
Сообщение
07/12/2006 13:39
Копия темы
. Только начал переводить иконку перед ссылкой, и вы уже сделали :) По кросс-браузерности: не могу сообразить, почему outerHTML используется?
rgcomua
Сообщение
07/12/2006 14:12
Копия темы
0
. я разными путями пробовал, пока получилось только так. Автор через DOM иконку после ссылки добавлял, но как ее через DOM перед ссылкой поставить понятия не имею. |
Выразить восторг, поругаться или предложить что-нибудь можно на форуме |
Для обсуждения этого сервиса так же есть темы на фрилансе по поиску , флудотопу ,и по удалённым сообщениям ,и по Актуальным/популярным темам , и по топу "кто кому больше наотвечал" |