Kom ihåg mig?
Home Menu

Menu


Genererade länkar i MSIE

Ämnesverktyg Visningsalternativ
Oläst 2008-02-22, 13:16 #1
turborakettis avatar
turboraketti turboraketti är inte uppkopplad
Medlem
 
Reg.datum: Feb 2008
Inlägg: 76
turboraketti turboraketti är inte uppkopplad
Medlem
turborakettis avatar
 
Reg.datum: Feb 2008
Inlägg: 76
Jag kör en klient-server-lösning för att maskera epostadresser på mina hemsidor (så inte de elaka spambottarna sniffar upp dem ni vet). Den går ut på att servern skickar:
Kod:
<span>info (snabel-a) example (punkt) se</span>
och sedan är det ett javascript som i klienten gör om detta till:
Detta funkar fint och vad som är extra bra är att adressena är läsbara även om surfaren har javascript frånslaget.

Problemet uppstår i MSIE (alla versioner). Trots att jag i min CSS specat färg för mina länkar, blir de genererade länkarna alltid vita med en grå skugga i MSIE. Dock blir färgerna korrekta i FF, Safari mfl. Hur lösa detta???

Visst skulle man kunna trycka dit färgerna med javascript efter att länken är genererad, men det blir oerhört klumpigt... Dessutom är ju den mystiska grå skuggan kvar (förmodligen).
turboraketti är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-02-22, 17:20 #2
allstars allstars är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Apr 2006
Inlägg: 2 126
allstars allstars är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Apr 2006
Inlägg: 2 126
skapas a-element eller hur gör du?

fungerar detta då?

Kod:
<span id="mail">info (snabel-a) example (punkt) se</span>
Kod:
<script type="text/javascript">
window.onload = function(){
	maillink = document.getElementById("mail");
	maillink.innerHTML="";
	b=document.createElement("a");
	b.href="mailto:[email protected]";
	b.innerHTML="maila mig!!";
	maillink.appendChild(b);
}
</script>

annars lägg till i css att länkarna skall gälla även #mail a.
Worth a try
allstars är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-02-23, 10:54 #3
turborakettis avatar
turboraketti turboraketti är inte uppkopplad
Medlem
 
Reg.datum: Feb 2008
Inlägg: 76
turboraketti turboraketti är inte uppkopplad
Medlem
turborakettis avatar
 
Reg.datum: Feb 2008
Inlägg: 76
Tack för förslaget. Jag testade att göra ungefär som du föreslog och då uppstår inte problemet. Efter lite forskande har jag också kommit fram till varför:

Mitt skript gör ungefär så här på varje <span> (node nedan) i dokumentet:
Kod:
if( tmp=node.innerHTML.match(/^(([\w\.\+-]+) \((punkt|snabel-a)\) )+(\w+)$/) ) {
 var epost = tmp[0].replace(' (snabel-a) ','@').replace(/ \(punkt\) /g,'.');
 var newnode = document.createElement('a');
 newnode.appendChild( document.createTextNode(epost) );
 newnode.href = 'mailto:'+epost;
 node.parentNode.replaceChild( newnode, node );
}
Eftersom det sitter en massa specialattribut på alla element, som används av CMS:et i redigeringsläge hade jag också lagt in följande innan replaceChild ovan:
Kod:
for( var i=0; i<node.attributes.length; i++ )
 newnode.setAttribute( node.attributes[i].name, node.attributes[i].value );
för att få med allt till det nya elementet på ett generiskt sätt. Detta visade sig vara boven, ty i MSIE ingår även icke-satta attribut i attributes-vektorn. Det är ju lugnt i de flesta fall, för det gör ju inget om man får med t ex style="", men i fallet disabled, som inte behöver ha något värde är det värre. Resultatet blev att de genererade länkarna fick attributet disabled, vilka i MSIE visar som gråa med vit skugga.

Jag kunde lösa detta eftersom CMS:ets attribut alltig börjar på samma två bokstäver, så det räckte att filtrera på node.attributes[i].name.substr(0,2) inne i for-loopen.

Tack för knuffen i rätt riktning!
turboraketti är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-02-23, 17:52 #4
Jonas Jonas är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2004
Inlägg: 3 364
Jonas Jonas är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2004
Inlägg: 3 364
Varför inte göra det hela på serverside? Alla maillänkar blir HTML kodade?

Tex: &#x21; osv ?

Där #22 är i decimal & #x21 är i hexadecimal?

Hittills har jag inte fått ett enda spammail till någon utav dom addresserna som jag har använt detta på.
Jonas är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-02-24, 00:13 #5
turborakettis avatar
turboraketti turboraketti är inte uppkopplad
Medlem
 
Reg.datum: Feb 2008
Inlägg: 76
turboraketti turboraketti är inte uppkopplad
Medlem
turborakettis avatar
 
Reg.datum: Feb 2008
Inlägg: 76
Det är ju bra om det funkar. Det känns möjligen som att det tar längre tid för spambottarna att lära sig javascript än att lära sig html-entities, men det är förstås bara en gissning. Ska lägga detta i portföljen...
turboraketti är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 08:29.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017