Daniel OG
per en 1 Febrer 2011
756 Vistes

IE mai deixarà de sorprendre'm.

Ja està arreglat el mític error que feia que no es pugueren registrar des de IE6 o IE7 perquè el llistat de poblacions no es desplegava.

Resulta que era un error de javascript amb la propietat visibility que oculta capes; no funciona bé amb inherit i destrueix la propietat si s'iguala a inherit. La solució és per a IE igualar a valor nul la propietat.

 

Implementació anterior:

function hidediv(d) { var div=$__(d); if(!div) return false; div.style.visibility="hidden"; div.style.display="none"; }
function showdiv(d) { var div=$__(d); if(!div) return false; div.style.visibility="visible"; div.style.display="inherit"; }

Implementació parxada per a IE:

function hidediv(d) { try { var div=$__(d); if(!div) return false; div.style.visibility="hidden"; div.style.display="none"; } catch(err) { } }
function showdiv(d) { try { var div=$__(d); if(!div) return false; div.style.visibility="visible"; div.style.display=(IE?'':"inherit"); } catch(err) { } }

Funcions auxiliars:

var IE=document.all?true:false;
function gte(id) { return document.getElementById(id); }
function $__(e){if(typeof e=='string') return gte(e); return e};

 

D'altra banda l'error estava bé, perquè evitava que tota l'escòria que encara usa ie6 o ie7 es registrara a la xarxa :P

Publicat a: Personal
Sigues el primer a qui li agrada això.
Victor
xDDDD
1 Febrer 2011
Daniel OG
La solució era que es canviaren de navegador, en realitat és la millor, més normal i més raonable solució.
1 Febrer 2011