Fixing en xmanoel@: Javascript y Safari

28-12-2007

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.


feed de comentarios - top


·La Rabadilla· ·Laconada· ·iRamos· ·O Vello Corvo· ·Palabros·
counter [CSS 2 Valid!] [XHTML 1.0 Valid!] [Made with Ant] [Get Firefox] RSS 1.0RSS 1.0 Atom 1.0RSS 1.0