Javascript tegen Spam werkt maar gedeeltelijk

Status
Niet open voor verdere reacties.

bvanleeuwen254

Gebruiker
Lid geworden
12 feb 2008
Berichten
243
Hallo,

Ik heb het volgende stukje javascript+html geschreven als nieuwe preventie tegen spam:
HTML:
<a href="javascript:emailme('info','joopvanleeuwen','nl');"><script type="text/javascript">emailme('info','joopvanleeuwen','nl');</script></a>
    <script language='JavaScript' type="text/javascript">
<!--
function emailme(first,second,last) {
  // Very basic spam bot stopper
	  
  window.location = 'mailto:'+first+'@'+second + '.' + last;
  
}
//-->
</script>

De link zelf werkt wel, hij open netjes Outlook met daarin het e-mail adres helemaal aan elkaar vastgeplakt. Maar tussen de <a> en de</a> werkt niet.

Wat heb ik verkeerd gedaan?

Bob
 
Zoiets is heel leuk enzo, maar mensen zonder Javascript aan hebben een probleem: ze kunnen je e-mail adres niet lezen!




overigens komt je probleem door je functie: die zet de window.location naar iets; het schrijft niet naar het scherm. Wat jij zoekt is een 2e functie,

[js]function schrijfEmailAdres(name, domain, ext)
{
document.write(name + '@' + domain + '.' + ext);
}[/js]
HTML:
<script type="text/javascript">schrijfEmailAdres('info','joopvanleeuwen','nl');</script>

wat ook weer problemen oplevert: document.write is een slechte gewoonte. Wat beter kan is met .innerHTML werken.
 
Hallo,

Is het het los zet in een HTM bestand geeft hij het e-mail adres gewoon weer, maar wat ik wil is dat het ook werkt tusen de <a> en </a> is dan .innerHTML beter?

Bob
 
Eh, you lost me. Dit zou moeten werken (innerHTML voorbeeld):

op de plek waar je je contact-email-adres wilt hebben:
HTML:
<p id='contact'></p>

onderaan, net voor de </body>, in een script tag:
[JS]var c = document.getElementById('contact'),
a = document.createElement('a'),
pre = 'diederik',
post = 'bbq',
ext = 'nl';

a.addEventListener('click', function()
{
location = 'mailto:' + pre + '@' + post + '.' + ext;
}, false);

a.innerHTML = pre + '@' + post + '.' + ext;

c.appendChild(a);[/JS]

Dat maakt een a-element en bind er een click-handler aan vast.

Dit is m'n test pagina:
HTML:
<html>

   <head>
   </head>

   <body>

      <p id='contact'></p>


      <script>

         var c = document.getElementById('contact'),
             a = document.createElement('a'),
             pre  = 'diederik',
             post = 'bbq',
             ext  = 'nl';

         a.addEventListener('click', function()
         {
            location = 'mailto:' + pre + '@' + post + '.' + ext;
         }, false);

         a.innerHTML = pre + '@' + post + '.' + ext;

         c.appendChild(a);

      </script>

   </body>

</html>

Dit geeft dus het email adres diederik@bbq.nl weer.



Nogmaals, Javascript gebruiken hiervoor is gewoon een Slecht Idee™ omdat niet-Javascript browsers het niet zien. Tegen spam kan je beter een goed filter aan de e-mail kant hebben ;)
 
Het gaat mij er meer om dat ze niet meer het e-mail adres binnenhalen, onze website is eigenlijk ons versieten kaartje, dus ons e-mail adres staat er op. Ze kunnen geen e-mail versturen via ons domein, dat is het probleem niet. Maar ze bestellen zooi(voor de geintereseerde, wij krijgen rekeningen van pornhub, amazon, paypal etc binnen en ze gebruiken ons e-mail als frontje er voor, en het wordt dan door gestuurd naar hun echte, en wij zitten met de rekeningen.

Wij browser zijn er tegenwoordig nog die geen javascript ondersteunen?
 
Dit geeft dus het email adres diederik@bbq.nl weer.
Goede browsers wel, zo niet bv. IE7, die geeft mooi blanco. :p
IE7 kan de addEventListener niet aan, en dan zou er nog bij moeten komen:
[JS]a.attachEvent('onclick',doSomething)[/JS]
plus een doSomething-functie, zodat de anonieme addEventListener-functie waarschijnlijk het beste een echte functie kan worden: voor tweeërlei oproep vatbaar. Zie ook Quirksmode.

Maar inderdaad, javascript anti-spam maatregelen zijn een slecht idee, en worden ook door de Webrichtlijnen afgewezen.

En eigenlijk heb ik als g-mailer ook tegen gewone klikbare mailto:links zo m'n bedenkingen... zie alhier!

Met vriendelijke groet,
CSShunter
 
Wij browser zijn er tegenwoordig nog die geen javascript ondersteunen?
Het gaat er niet zo zeer om of browsers het ondersteunen (je hebt gelijk, alle 'normale' browsers ondersteunen het) maar er zijn mensen die Javascript uit hebben staan.

Goede browsers wel
Daar heb je een punt ;) het is makkelijk op te lossen door zo'n if geval er neer te zetten. Maar het ging om het idee :)
 
Het gaat er niet zo zeer om of browsers het ondersteunen (je hebt gelijk, alle 'normale' browsers ondersteunen het) maar er zijn mensen die Javascript uit hebben staan.

Valt ie daar onder? :p

Ik zal er anders over gaan denken om het e-mail adres van de website af te halen. Of iets verzinnen misschien door middel van een contact formulier of e.d.
 
Hoi bvanleeuwen254,
Als je op je huidige e-mail adres wordt lastiggevallen, dan is dat bij spambots bekend en wordt dat waarschijnlijk al in tig-voud verspreid op CD'tjes met duizenden voor spammers geoogste mail-adressen. :confused:
Dus weghalen van het e-mail adres heeft waarschijnlijk pas op de erg lange termijn zin.

Afschaffen van het huidige e-mail adres en vervangen door een nieuw lijkt me een betere optie.
Je zou bv. een Gmail-account voor je e-mail kunnen nemen. Mijn ervaring is dat Gmail alle spam er erg goed uithaalt.

Verder schrijf je:
Maar ze bestellen zooi ... en ze gebruiken ons e-mail als frontje er voor, en het wordt dan door gestuurd naar hun echte, en wij zitten met de rekeningen.
Ik weet niet hoe dat kan. Wijst dat er niet op dat ergens iets gekraakt is?
  • Want bij een bestelling via e-mail krijg je doorgaans een mailtje terug naar het opgegeven mail-adres, om de bestelling te bevestigen.
  • Anders zou iedereen maar mooi op naam van iemand anders iets kunnen bestellen.
  • En zo'n bevestigings-mail kan toch alleen maar vanaf het echte e-mail adres verzonden worden (waar later ook de rekening naar toe wordt gestuurd)? Of zijn er technieken waarbij dat omzeild kan worden?
Dan is het hek van de dam ... :shocked:
  • Het kan natuurlijk ook, dat spammers nep-facturen sturen voor dingen die nergens geleverd zijn (een aantal adresgidsen zijn daar berucht om), in de hoop dat een x percentage zonder meer betaalt. Zie ook: Steunpunt Acquisitiefraude.
Met vriendelijke groet,
CSShunter
 
Laatst bewerkt:
Wij hebben het huidige e-mail adres al zins 2003, als we dat opeens veranderen gaat dat erg veel problemen opleveren.

Van wat ik van mijn hosting provider heb gehoord kunnen ze met BCC en dat soort spul aardig ver komen met het opgeven van een ander zijn adres.

Sommige facturen zijn ook niet echt, maar het meeste wel. We hebben al aangiften gedaan nadat we opeens een brief binnen kregen van het nationaal incasso bureau maar dat was in mei, en we krijgen eens om de 2 maanden een brief dat onze aangiften in behandeling is. Maar we horen er nooit iets van.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan