Вы не зашли.
#1.
TLENS
Off
(14)
Moderator
2011.02.13 17:05
Я только начинаю подскажите что я не так сделал и как можно лучше?
Скрипт ниже спрашивает хочет ли пользователь перейти по ссылке если она ведет на другой ресурс.
полезно для форумов чатов и т.п.
Не срабатывает если ссылка ведет на под-домен или выводит с него.
Гемор рой оцени по 10 бальной шкале
Код:
| window.onload = function() { |
| searchLink(); |
| |
| } |
| function searchLink() |
| { |
| //var myDomain = document.domain; |
| var myDomain = 'test.pp.ua'; |
| var domainLength = myDomain.length; |
| var a = document.getElementsByTagName('a'); |
| var l = a.length; |
| for(i=0; i<l; i++) |
| { |
| var href = a.item(i).href; |
| //console.log(href.replace(/.+:\/\/([^\/]*?)\/.*/,'$1')); |
| var host = href.replace(/.+:\/\/([^\/]*?)\/.*/,'$1'); |
| if(host.toLowerCase().substr(-domainLength) != myDomain) |
| { |
| a.item(i).onclick = locationLink; |
| } |
| } |
| } |
| |
| |
| function locationLink() |
| { |
| if(confirm('Данная ссылка ведет на другой ресурс.\nВы уверенны что хотите перейти по адресу?\n'+this.href)) |
| { |
| //window.open("/location.php?url="+encodeURIComponent(this.href)); |
| window.open(this.href); |
| } |
| return false; |
| } |
Отредактировано TLENS (2011.02.13 17:05)
#2.
TLENS
Off
(14)
Moderator
2011.02.13 17:05
Да насчет регулярки к каждой ссылке это не очень
Думал привязать функцию searchLink к клику и обрабатывать по одному адресу, но просто у меня уже к своим применены функции на клик, и я думаю будут мешать один одному
Отредактировано TLENS (2011.02.13 17:05)
Код:
| window.onload = function() { |
| var myDomain = 'test.pp.ua', domain; |
| var domainLength = myDomain.length; |
| |
| var a = document.getElementsByTagName('a'); |
| var l = a.length; |
| |
| for (var i = 0; i < l; i++) { |
| domain = a.item(i).href.split('/')[2].toLowerCase(); |
| |
| if (domain != myDomain) { |
| a.item(i).onclick = function () { |
| return confirm("Данная ссылка ведет на другой ресурс.\nВы уверенны что хотите перейти по адресу?\n" + domain); |
| } |
| } |
| } |
| } |
#4.
TLENS
Off
(14)
Moderator
2011.02.13 20:08
Стопудово за split забыл
Добавлено спустя 5 минут 12 секунд: Gemorroj
P.S твой вариант будет спрашивать если ссылка будет на поддомен.
Отредактировано TLENS (2011.02.13 21:09)
#5.
TLENS
Off
(14)
Moderator
2011.02.13 20:08
Но это можно исправить!
Код:
| window.onload = function() { |
| searchLink(); |
| } |
| function searchLink() |
| { |
| var myDomain = 'test.pp.ua'; |
| var domainLength = myDomain.length; |
| var a = document.getElementsByTagName('a'); |
| var l = a.length; |
| for(i=0; i<l; i++) |
| { |
| if(a.item(i).href.split('/')[2].toLowerCase().substr(-domainLength) != myDomain) |
| { |
| a.item(i).onclick = function() |
| { |
| |
| if(confirm('Данная ссылка ведет на другой ресурс.\nВы уверенны что хотите перейти по адресу?\n'+this.href)) |
| { |
| window.open(this.href); |
| } |
| return false; |
| }; |
| } |
| } |
| } |
Отредактировано TLENS (2011.02.13 21:09)
#6.
TLENS
Off
(14)
Moderator
2011.02.13 21:09
Кстати после a.item(i).onclick = function () {} надо поставить точку с запятой?
Ведь обфускатор ошибок наделает
#7.
TLENS
Off
(14)
Moderator
2011.02.13 22:10
Я имел ввиду в целом оценить даже насчет обфускатора
TLENS, да надо. убери searchLink и сделай как в моем примере.
#9.
TLENS
Off
(14)
Moderator
2011.02.14 08:08
А ну я же убрал выше
Добавлено спустя 2 минуты 21 секунду: Да это так для тренировок себе на jquery со всякими анимациями
Отредактировано TLENS (2011.02.14 08:08)
Страниц: 1