Der folgende Beitrag wurde am 03. 07. 2010, 11:36 Uhr von Beat veröffentlicht.
Die folgende Funktion läuft tadellos im Firefox.
MSIE aber ersetzt falsch.
Der Inhalt von href ist ein mailto-link der Form:
<a onmouseover="mailto(this)" title="someone[at]example.org?subject=Anmeldung für Wanderung am 2010-08-15 &body=Ich möchte eine Anmeldung tätigen für:%0ADatum: 2010-08-15%0A ... %0A">webmaster2008[at]elcappuccino.ch</a><br>
function mailto(el){
el.innerHTML = el.innerHTML.replace(/\[at\]/i,'@');
el.title = el.title.replace(/\[at\]/i,'@');
el.href= "mailto:" + el.title;
}
MSIE 8 macht aber den Fehler, dass es den Inhalt von title auf innerHTML kopiert. Dadurch erscheint der mailto:?anhang im Label des Links.
Es ist, als ob MSIE 8 folgenden Code ausführt:
function mailto(el){
el.innerHTML = el.innerHTML.replace(/\[at\]/i,'@');
el.title = el.title.replace(/\[at\]/i,'@');
el.href= "mailto:" + el.title;
el.innerHTML = el.title; // <---
}
Der Fehler verschwindet auch dann nicht wenn ich die Zeile
el.href= "mailto:" + el.title;
durch
el.href= "mailto:" + encodeURI(el.title);
ersetze.
Wodurch ist das bedingt?
Was kann ich tun?
mfg Beat
--
><o(((°> ><o(((°>
<°)))o>< ><o(((°>o
Der Valigator leibt diese Fische
Der folgende Beitrag wurde am 03. 07. 2010, 18:34 Uhr von hotti veröffentlicht.
hi,
> Was kann ich tun?
die Komponenten des URI einzeln encoden mit encodeURIComponent() und den URI RFC gerecht (lückenlos%20) zusammensetzen.
Ungetestet,
Hottüüüü
© 1998-2013 SELFHTMLImpressumSoftware: Classic Forum 3.4