Mailit piiloon spämmääjiltä
Maanantaina 23. Tammikuuta 2006
Olen pitkään käyttänyt sähköpostiosoitteiden suojaamiseen parin rivin Javascript-tiedostoa.[LUELISÄÄ] HTML:n seassa on ollut yksinkertainen funktiokutsu tyyliin
<script type=”text/javascript”>tulostaMaili()</script>.
Tämä kutsu kirjoitti sähköpostiosoitteen sivulle seuraavan funktion mukaisesti:
function tulostaMaili() {
var name = “antti”;
var at = “@”;
var domain = “syrja.as”;
document.write(”<a href=”mailto:”+name+”"+at+”"+domain+”"> “+name+”"+at+”"+domain+”</a>”);
}
Mutta koska tein joskus tempun ja muutin firman sivujen content-typen application/xhtml+xml:ksi, en ollut tajunnut, että ko. javascript lakkasi toimimasta.
Kimmon vinkkien myötä muutin js-pätkän seuraavaan muotoon:
function tulostaMaili() {
var name = “antti”;
var at = “@”;
var domain = “syrja.as”;
var email = “”+name+”"+at+”"+domain+”";
if(document.getElementById(”maili”)) {
osoite = document.createTextNode(email);
linkki = document.createElement(”a”);
linkki.appendChild(osoite);
linkki.setAttribute(”href”, “mailto:” + email);
span = document.getElementById(”maili”);
span.appendChild(linkki);
}
else {
document.write(email);
}
}
Tämä vaatii tietysti sen, että tuon kutsun eteen pitää lisätä yksi elementti, johon osoite kirjoitetaan. Eli tyyliin
<span id=”maili”></span>
<script type=”text/javascript”>tulostaMaili()</script>.
Nyt pätkän pitäisi olla DOM:in mukainen ja toimia kaikilla selaimilla, olipa mitä tahansa hifistelyjä käytössä. Koodi ei varmastikaan ole näteintä mahdollista (ja on muutenkin js:ää) kun ei ollut enempää aikaa perehtyä, mutta näkyypä taas sivuilla sähköpostiosoite. Ja niille, jotka eivät salli Javascriptiä selaimissaan viitataan kintaalla ;) Mitä itse kikkaan tulee, voisin todeta, että se toimii vallan mahtavasti, ainakin jos sen laskee spämmin määrässä - pari kuussa ei ole paha ollenkaan.



Haetaan statusta Twitteristä