Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/02/2010, 18:27
victorfz
 
Fecha de Ingreso: abril-2002
Mensajes: 186
Antigüedad: 22 años
Puntos: 2
Probleva javascript IE6

Hola tengo un gran problema con un generador de plantillas que me he comprado
Resulta que a pesar de que en teoría si que es compatible con IE6 tiene una fallo que provoca que en navegador se vuelva inestable solo el IE6.
Tras muchísimas vueltas he visto que el fallo se provoca solo cuando le añades la etiqueta <base href="" /> que en mi caso es necesaria pues tengo URLs amigables.
Para ver el ejemplo pongo la dirección.
c -e -n -t -r - o - l - e -d.es/sample1 //sin espacios ni guiones

El fallo esta en el fichero style.ie6.css cuando llama a la función de javascript GetStyleUrl().
Pongo parte del código pero para verlo entero mejor ver la URL que he puesto antes.
Llevo un vuen rato pero no consigo saber que valor debería de retornar la función GetStyleUrl() mediante return styleUrlCached;
Puesto que ya se que es bastante engorroso si alguien consigue averiguar la solución me comprometo a pasarle alguna plantilla personalizada (legal) ya que para algo he comprado la licencia (desde luego el soporte deja mucho que desear ya que se limitan a decir que revise la pagina en w3c cuando ya esta perfectamente validada sin un solo fallo).
De todas formas yo seguiré intentándolo y cuando lo consiga publicare la solución por si a alguien le pasa lo mismo.
Gracias de antemano. Saludos.


script.js
Código HTML:
var styleUrlCached = null;
function GetStyleUrl() {
    if (null == styleUrlCached) {
        var ns;
        styleUrlCached = '';
        ns = document.getElementsByTagName('link');
        for (var i = 0; i < ns.length; i++) {
            var l = ns[i];
            if (l.href && /style\.ie6\.css(\?.*)?$/.test(l.href)) {
                return styleUrlCached = l.href.replace(/style\.ie6\.css(\?.*)?$/, '');
            }
        }

        ns = document.getElementsByTagName('style');
        for (var i = 0; i < ns.length; i++) {
            var matches = new RegExp('import\\s+"([^"]+\\/)style\\.ie6\\.css"').exec(ns[i].innerHTML);
            if (null != matches && matches.length > 0)
                return styleUrlCached = matches[1];
        }
    }
    return styleUrlCached;
}

style.ie6.css
Código HTML:
.art-nav .l, .art-nav .r
{
font-size: 1px;
background: none;
behavior: expression(this.runtimeStyle.filter?'':this.runtimeStyle.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + GetStyleUrl()+"images/nav.png',sizingMethod='crop')");
}