Итак, код JavaScript:
<script language="JavaScript">
// www.kichrum.org.ua No rights reserved.
function external() {
for (i in document.links) {
link = document.links[i];
if (link.href && link.href.indexOf('http://')==0 && link.href.indexOf('kichrum.org.ua')==-1) {
link.onclick = onExternalLinkActivate;
link.onkeypress = onExternalLinkActivate;
}
}
}
function onExternalLinkActivate() {
if (confirm("Вы покидаете мой сайт по внешней ссылке.\nЯ не несу ответственности за содержимое сайта, содержащегося по этой ссылке.\nОн может содержать вирусы, трояны и другие вредоносные программы, опасные для Вашего компьютера. Если у Вас нет серьезных оснований доверять этому сайту, лучше всего на него не переходить и нажать Отмена.\nЕсли Вы не передумали, нажмите ОК."))
window.open(this.href);
return false;
}
window.onload = external;
</script>
Достаточно вставить на все страницы вашего сайта.
И еще один вариант - различаем external и внешние без rel (как бы проверенные).
Если external - скрипт предупредит и откроет в новом окне. Если же ссылка проверена - спросит, в новом или в этом же окне открывать.
<script language="JavaScript">
// www.kichrum.org.ua No rights reserved.
function external() {
for (i in document.links) {
link = document.links[i];
if (link.href && link.href.indexOf('http://')==0 && link.href.indexOf('kichrum.org.ua')==-1)
if (link.rel && link.rel.indexOf('external')!=-1) {
link.onclick = onExternalLinkActivate;
link.onkeypress = onExternalLinkActivate;
}
else {
link.onclick = onApprovedLinkActivate;
link.onkeypress = onApprovedLinkActivate;
}
}
}
function onExternalLinkActivate() {
if (confirm("Вы покидаете Kichrum's Blog по внешней ссылке.\nАвтор блога (Kichrum) не несет ответственности за содержимое этого сайта.\nОн может содержать вирусы, трояны и другие вредоносные программы, опасные для Вашего компьютера. Если у Вас нет серьезных оснований доверять этому сайту, лучше всего на него не переходить.\n\nЕсли Вы еще не передумали, нажмите ОК.\nЕсли Вы не хотите рисковать своей безопасностью, нажмите Отмена."))
window.open(this.href);
return false;
}
function onApprovedLinkActivate() {
if (confirm("Вы пытаетесь перейти по внешней ссылке.\n\nЕсли Вы хотите ПОКИНУТЬ Kichrum's Blog и перейти по ссылке, нажмите ОК.\nЧтоб открыть ее в новом окне, нажмите Отмена."))
window.location=this.href;
else window.open(this.href);
return false;
}
window.onload = external;
</script>
Пользуйтесь на здоровье :)
8 коментарів:
ІМХО питати користувача, чи вони хочуть покинути сайт, це вже занадто...
Я б на такий сайт більше не зайшов би або заблокував би на ньому javascript.
Віруси, трояни та все інше то проблеми користувачів, які користуються небезпечним софтом (наприклад ІЕ, Outlook і т.п.)
Так тебе второй вариант не понравился, или оба? (В том числе и то, что установлено у меня сейчас)
P.S. ВКонтакте не крут? :(
Мені не подобається сама ідея питати користувача, чи дійсно він хоче щось зробити (крім випадків, коли його дії можуть мати критичні налідки).
Перехід за лінками це основна особливість вебу і штучно її обмежувати це дуже погана ідея...
Вконтакті звісно не крутий (мені більше подобається Facebook, але ми не його обговорюємо), до того ж навіть та його фіча не врятувала від вірусних епідемій влітку.
Та да... Это уже "занадто". Достаточно было бы target="_blank" использовать, и насрать на стандарты.
PS. Блин, зачем я тебе показал сколько ошибок у тебя на сайте валидатор находит :)
Та мне наплевать на ошибки в блоге. Я их исправлять не собираюсь. Я просто думаю о будущих проектах. К тому ж хочется джаваскрипт немножко освоить.
Убрал запрос... Просто открывается в фоновой вкладке. Раз уж читатели так решили =)
Поставь какой-нибуть типограф для форматирования и подсветки кода. Когда его будеть больше - совсем неудобно читать будет.
По вашим заявкам...
По замечанию моего преподавателя программирования, высказанному комментарием к этому посту, поставил подсветку синтаксиса кода. В той ж....
Спасибо за подсветку кода ;)
Дописати коментар