Hoy me dio por el gusanillo de programar y no tuve mejor idea que arreglar un problema en la página: los comentarios no funcionaban en Safari (Imagino que los cuatro otros visitantes a la página usando Safari -aparte de yo- no tenían interés en hacer comentarios, porque nadie me avisó de este problema hasta que me di cuenta el otro día). Me imaginé que el problema era algo de JavaScript y la verdad no me veía muy capaz de arreglarlo.
Pero todo es ponerse: Hoy me animé a al menos dedicar un par de horitas a ver que pasaba, y he conseguido descubrir tres cosas. 1) Que el Safari permite depurar el JavaScript bastante decentemente. 2) Que el WebKit es bastante diferente del KHTML. 3) Que el Safari 3 pasa de algún estandar como la función JavaScript como decodeURIComponent()
Y gracias a esto me atreví a parchear el código que uso para los comentarios: un super-hackeo hecho por Yusuke. (Espero que me permita meter mis pezuñas en su código).
// xmanoel@xmanoel.net : try to fix an issue with Safari
// not having the decodeURIComponent() function
if ( navigator.appVersion.indexOf( "Safari" ) > -1 ) {
var esc = escape( text );
esc = esc.replace( /^(%[89ABab][0-9A-Fa-f])+/, "?" );
if ( esc.indexOf("%u") < 0 && esc.indexOf("%") > -1 ) {
text = unescape( esc );
}
}
// end of fix
else if ( navigator.appVersion.indexOf( "KHTML" ) > -1 ) {
var esc = escape( text );
esc = esc.replace( /^(%[89ABab][0-9A-Fa-f])+/, "?" );
if ( esc.indexOf("%u") < 0 && esc.indexOf("%") > -1 ) {
text = decodeURIComponent( esc );
}
Vamos, que el fix es de parvulario, vale. Pero bueno, me gusta. Los mejores arreglos son los que son sencillos y van a la primera (y este chutó tal como me esperaba). Hala, me siento orgulloso.