Вы не зашли.
Главная » JavaScript » Осваиваю JS написал полезный скрипт обсудите плис
#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)
#3. Gemorroj Off (107)
Administrator
2011.02.13 22:10
Код:
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
Я имел ввиду в целом оценить даже насчет обфускатора
#8. Gemorroj Off (107)
Administrator
2011.02.14 10:10
TLENS, да надо. убери searchLink и сделай как в моем примере.
#9. TLENS Off (14)
Moderator
2011.02.14 11:11
А ну я же убрал выше
Добавлено спустя   2 минуты  21 секунду:
Да это так для тренировок себе на jquery со всякими анимациями
Отредактировано TLENS (2011.02.14 11:11)
Страниц: 1
Главная
WEB
PunBB Mod v0.6.2
0.015 s