Архив на категория: JavaScript

jQuery – отваряне на външните връзки в нов прозорец

Преди известно време търсих начин за отвряне на линковете към външни сайтове в нов прозорец или таб на браузъра, като основната цел беше изходния код на страницата да е xHTML валиден, което е проблем при използвнето на target=“_blank“ . Попаднах на едно решение с помоща на jQuery. Използва се функцията indexOf , с помощта на която се откриват всички хипервръзки, които не съдържат URL на сайта и към тях се добавя атрибута за отваряне в нов прозорец. Кода на функцията е следния:

$(document).ready(function(){
		$('a').each(function(){
			var url = $(this).attr('href');
			if(url.indexOf('http://www.site.com')){
				$(this).attr({target: '_blank'});
			}
		})
	});

Към момента в блога се  ползва тази техника с версия на jQuery – 1.4.2. Трябва да се има предвид, че е от значение дали адресът е зададен с www или без, тъй като ако е без всички връзки към вътрешни за сайта страници, които са въведени с www ще се отварят също в нов прозорец.

А за да се  даде възможност за избор на потребителите  може да се добави опция, за отваряне линковете както в нов, така и в същия прозорец. За целата може да се използва подходяща икона пред самия линк, която да служи за отваряне в нов прозорец, а самия URL да се отваря в настоящия. По подобен начин са реализирани външните връзки в Уикипедия. Самият код на функцията ще изглежда по следния начин:

$(document).ready(function(){
		$('a').each(function(){
			var url = $(this).attr('href');
			if(url.indexOf('http://www.site.com')){
var image_link = '<a href="'+url+'" target="_blank"><img src="external.png" /></a>';
				$(this).after(image_link);
			}
		})
	});

Предполагам, че има подобни варианти за mootools  и за останалите популярни javascript библиотеки, така че няма да е проблем да се намерят и други алтернативи на target=“_blank“.

Javascript срещу спама

В последните си проекти започнах да използвам кратък javascript, когато имейл адресите в уеб сайтовете, трябва да са линкове. В тези случаи, ако са изписани по стандартния начин:
<a href=“mailto:name@domain.com“> тогава адреса в линка лесно ще бъде прихванат от спам ботовете и ще получава съответното количество спам. Самият скрипт изглежда така:


<!-- Anti Spam mailto Javascript -->
<script type="text/javascript">
<!--
emailE=('name' + '@' + 'domain' + '.com')
document.write('<a href="mailto:' + emailE + '">' + emailE + '<\/a>')
//-->
</script>
<!-- End Anti Spam mailto Javascript -->

Имейл адреса е разделен на 4 части „name“, „@“, „domain“ и „.com“, но може да се раздели и на още по кратки части или дори на отделни букви/цифри, след което се събира в един низ, стойността на който от своя страна се придава към следващия ред от скрипта, който създава HTML елемент (хиперлинк) със съответните стойности. По този начин роботите, които не поддържат javascript не успяват да засекат имейл адреса и си спестявате част от огромния спам, който по статистически данни е над 90% от цялата електронна поща в световен мащаб.

Елементарен Javascript, който извежда текущата година

Един от елементите, присъстващи във футъра на почти всеки уеб сайт е текущата година. За да не се налага в началото на годината да се променя ръчно всеки HTML файл на статичните сайтове може да се използва JavaScript функция, включваща метода getFullYear на обекта Date по следния начин:

Copyright ©
<script type="text/javascript">
<!--
document.write(new Date().getFullYear());
// -->
</script>

Your Name, All Rights Reserved.

А ето и резултата от прилагането на скрипта:

Copyright © Your Name, All Rights Reserved.

Трябва да се отбележи също, че тази функция изписва текущата година, според настройките на компютъра на посетителя.

Допълнителни възможности са извеждането на различни вариации на дата с ден месец и година, а също и час и минути. Подробно описание на английски с примери може да откриете на следния адрес: www.webdevelopersnotes.com/tips/html/27