2012-05-29 8 views
5

Aquí es la función:¿Por qué no .getPropertyValue() devolverá un valor para la propiedad "borderRadius"?

function lastmenuborder() { 
    var articleparent = document.getElementById('article').parentNode; 
    var articlestyle = window.getComputedStyle(articleparent,null).getPropertyValue('borderRadius'); 
    alert (articlestyle); 
} 

consigo ningún valor, sin embargo, el CSS para el nodo padre es:

div#mainbody div.placeholder { 
    border-radius: 3px; 
} 

¿Qué tendría que cambiar para volver "3px"? Toda ayuda fue muy apreciada; Todavía soy un nuevo en JavaScript.

+0

¿podría verificar esto por favor? alerta (articleparent.style.borderRadius); – Sebas

+0

@Sebas No obtengo ningún valor. ¿Esto significa que no he hecho referencia al elemento correcto? –

+0

Si mi interpretación de CSS es correcta, parece que div.placeholder está obteniendo el estilo de radio de borde no, es div principal # mainbody ... esto podría ser por qué – pandavenger

Respuesta

8

Para getPropertyValue(), utiliza guiones en lugar de camelCase.

Esto funciona en Chrome ...

.getPropertyValue('border-radius'); 

Pero Firefox parece requerir esquinas específicos usando esta sintaxis ...

.getPropertyValue('border-top-left-radius'); 
+0

Muchas gracias. Esto resolvió mi consulta. :) –

+0

Esto es TIL para mí :) – pramodc84

0

getComputedStyle no es compatible con Internet Explorer 8 a continuación, para fijar este uso:

if (!window.getComputedStyle) { 
     window.getComputedStyle = function(el, pseudo) { 
      this.el = el; 
       this.getPropertyValue = function(prop) { 
       var re = /(\-([a-z]){1})/g; 
       if (prop == 'float') prop = 'styleFloat'; 
       if (re.test(prop)) { 
        prop = prop.replace(re, function() { 
         return arguments[2].toUpperCase(); 
        }); 
       } 
       return el.currentStyle[prop] ? el.currentStyle[prop] : null; 
      } 
      return this; 
     } 
    } 

var elem = window.getComputedStyle(document.getElementById('test'), ""); 
alert(elem.getPropertyValue("borderRadius")); 
Cuestiones relacionadas