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>