Syster Webb - PC Hemma 1/2005

Gömd e-postadress i formulär

Jag har ett formulär där besökarna skickar en fråga till mig och just där har jag angett adressen med "mailto:". Överallt annars har jag skriptat bort adressen med ett skript som jag hittade på SupportData.Net. Men jag skulle vilja gömma adressen även i formuläret, för att slippa spam. Går det?

Svar Du kan skripta praktiskt taget allt som skall vara med i koden som skickar e-brevet till dig.

I INPUT-raden med Skicka-knappen lägger du till: onClick="skickaURL();"

Direkt efter den avslutande FORM-taggen placerar du skriptet med funktionen som anropas. Variablerna a – c innehåller din e-postadress, f – k innehåller texten till meddelandet:

<SCRIPT LANGUAGE="javascript">
<!--
var a,b,c,d,e,f,g,h,j,k
a='ma'
b='kontakt'
c='.net'
a+='ilto:'
b+='@'
b+='supportdata'
d=window.location //Sidans URL
e='?subject=SupportData.Net: En fråga om ett tips' //Det här är ämnesraden
f='%0D%0A' //Det här ger en radmatning - 0 är en nolla
g=document.title //Titelraden på sidan
h='&body=Det här tipset förstår jag inte riktigt:' //Första raden i själva meddelandet
j='Hälsning'
k='Kan du förklara det litet närmare?'
function skickaURL(){
window.location=a + b + c + e + h + f + f + g + f + d + f + k + f + j + f
}
//-->
</SCRIPT>

Jag använder den här metoden på vår webbplats och har hittills inte fått ett enda spambrev till den gömda adressen! Du måste förstås anpassa både antalet variabler och deras innehåll efter dina egna behov.

Meddelandet hamnar i ämnesraden!

Jag har en knapp för att besökarna skall kunna skicka ett meddelande till mig. Jag har använt koden "mailto:[min adress]?subject=[ämnesraden]?body=[texten i meddelandet]".

Men det blir inte som jag vill. Det fungerar i IE och Firefox, men i Netscape hamnar texten från både "subject" och "body" i ämnesraden. Vad gör jag för fel?


Så här blir det när koden är felskriven.

Svar Både IE och Firefox är relativt "förlåtande" webbläsare – de har överseende med vissa kodningsfel – men Netscape är strängare. Felet är ? framför "body". Använd ? framför det första tillägget du gör efter "mailto". Framför alla följande tilläggen sätter du i stället ett &-tecken.

Ett exempel: <A href="mailto:dinadress@dindomän.se?subject=Ett tips till dig&body=Jag har hittat en bra sida som du borde titta på.">Länktexten</A>.


Rätta till koden så hamnar texten på rätt plats.

Radmatningar i e-brevstext

Går det att lägga in radmatningar i meddelandetexten (&body) i en e-postlänk? Jag har prövat med \r och \n som ger radmatningar i meddelanderutor, men det fungerar inte.

Svar Använd %0D%0A (0 är en nolla) en gång för varje radmatning. Exempel: "body=Hej!%0D%0ABra sida!%0D%0A%0D%0AHälsning%0D%0A". När besökaren klickar i e-brevet som öppnas kommer markören att hamna på raden under "Hälsning", färdigt för underskrift.

Det här fungerar i IE och Firefox, men inte i Netscape.