Вы не зашли.
#1.
TLENS
Off
(14)
Moderator
2011.02.13 20:08
Я только начинаю подскажите что я не так сделал и как можно лучше?
Скрипт ниже спрашивает хочет ли пользователь перейти по ссылке если она ведет на другой ресурс.
полезно для форумов чатов и т.п.
Не срабатывает если ссылка ведет на под-домен или выводит с него.
Гемор рой оцени по 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 20:08)
#2.
TLENS
Off
(14)
Moderator
2011.02.13 20:08
Да насчет регулярки к каждой ссылке это не очень
Думал привязать функцию searchLink к клику и обрабатывать по одному адресу, но просто у меня уже к своим применены функции на клик, и я думаю будут мешать один одному
Отредактировано TLENS (2011.02.13 20:08)
Код:
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 23:11
Стопудово за split забыл
Добавлено спустя 5 минут 12 секунд: Gemorroj
P.S твой вариант будет спрашивать если ссылка будет на поддомен.
Отредактировано TLENS (2011.02.14 00:12)
#5.
TLENS
Off
(14)
Moderator
2011.02.13 23:11
Но это можно исправить!
Код:
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.14 00:12)
#6.
TLENS
Off
(14)
Moderator
2011.02.14 00:12
Кстати после a.item(i).onclick = function () {} надо поставить точку с запятой?
Ведь обфускатор ошибок наделает
#7.
TLENS
Off
(14)
Moderator
2011.02.14 01:01
Я имел ввиду в целом оценить даже насчет обфускатора
TLENS, да надо. убери searchLink и сделай как в моем примере.
#9.
TLENS
Off
(14)
Moderator
2011.02.14 11:11
А ну я же убрал выше
Добавлено спустя 2 минуты 21 секунду: Да это так для тренировок себе на jquery со всякими анимациями
Отредактировано TLENS (2011.02.14 11:11)
Страниц: 1