go to content | go to menu | przejdź do menu języków


setAttribute, style i Internet Explorer (IE)

Data:
4 wrzesień 2008
Kategoria:
Programowanie
Author:
Cezary Tomczyk

Próbowałeś kiedyś skorzystać z javascriptowej funkcji setAttribute('style','właściwości'); i nie zadziałała Ci w Internet Explorer? No właśnie. A to dlatego, że IE nie wspiera tego w całości i jest niekompletnie zaimplementowane.

Niemniej jednak jest na to proste rozwiązanie, które cytujemy za peterbe.com:

function rzCC(s){
   // thanks http://www.ruzee.com/blog/2006/07/\
   // retrieving-css-styles-via-javascript/
   for(var exp=/-([a-z])/; 
       exp.test(s); 
       s=s.replace(exp,RegExp.$1.toUpperCase()));
   return s;
 }

 function _setStyle(element, declaration) {
   if (declaration.charAt(declaration.length-1)==';')
     declaration = declaration.slice(0, -1);
   var k, v;
   var splitted = declaration.split(';');
   for (var i=0, len=splitted.length; i<len; i++) {
      k = rzCC(splitted[i].split(':')[0]);
      v = splitted[i].split(':')[1];
      eval("element.style."+k+"='"+v+"'");

   }
 }

Teraz wystarczy wskazać element i nadać mu właściwości style:

var closer = document.createElement('a');
 //a.setAttribute('style', 'float:left; font-weight:bold');
 _setStyle(a, 'float:left; font-weight:bold');
 a.onclick = function() { ...

Następny lub poprzedni wpis

Twój komentarz

(required)
(required)




Szukaj