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!