Einfacher aber effektiver Spamschutz für E-Mail-Adressen mit Javascript und jQuery.
Ist JavaScript deaktiviert, erscheint nur info [at] domain.com.
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(function(){
$('.email').each(function(index) {
var s = $(this).text().replace(" [at] ", "@");
$(this).html("<a href=\"mailto:" + s + "\">" + s + "</a>");
});
});
</script>
Aus: info [at] domain.com
wird: info@domain.com
Im Quelltext die E-Mail-Adressen in span-Tags mit der Klasse „email“ setzen:
<span class=“email“>info [at] domain.com</span>
D.h. alle Elemente mit der Klasse „email“ werden in les- und klickbare E-Mail-Adressen umgewandelt.
Ohne jQuery könnte es z.B. so aussehen:
<script type="text/javascript">
function convertMailAddress() {
var emailElements;
if (document.getElementsByClassName)
emailElements = document.getElementsByClassName("email");
else
emailElements = document.getElementsByClassNameForOldies("email");
var elementContent, replaceContent;
for (var i=0; i<emailElements.length; i++) {
elementContent = emailElements[i].innerHTML;
replaceContent = elementContent.replace(" [at] ", "@");
emailElements[i].innerHTML =
"<a href=\"mailto:" + replaceContent + "\">" + replaceContent + "</a>";
}
}
// http://javascript.about.com/library/bldom08.htm
document.getElementsByClassNameForOldies = function(cl) {
var retnode = [];
var myclass = new RegExp('\\b'+cl+'\\b');
var elem = this.getElementsByTagName('*');
for (var i = 0; i < elem.length; i++) {
var classes = elem[i].className;
if (myclass.test(classes)) retnode.push(elem[i]);
}
return retnode;
};
window.onload = convertMailAddress;
</script>