Независимый от браузера способ определить, какие свойства CSS были переопределены атрибутом style - PullRequest
0 голосов
/ 16 февраля 2011

Есть ли кросс-браузерный способ определить, какие свойства CSS были установлены вручную с помощью JavaScript?Или, возможно, какие атрибуты CSS были переопределены атрибутом style?

Является ли свойство cssText стандартным и кросс-браузерным: document.getElementById('id').style.cssText?

Другим возможным решением является использование функции-оболочки.Самый простой пример:

function css(node, prop, value)
{
   $(node).css(prop, value);
   memory[node][prop] = value;  // remember that we set prop for the node
}

1 Ответ

0 голосов
/ 16 февраля 2011

Вы всегда можете получить атрибут стиля и вырвать значения:

Не JQuery идея:

<!DOCTYPE html>
<html>
  <head>
    <meta charset=utf-8 />
    <title></title>
  </head>
  <body>
    <span id="aspan" style="color:red; background-color: blue;">Hey Hey Hey</span>
    <script>

      String.prototype.trim = function () {
        return this.replace(/^\s*/, "").replace(/\s*$/, "");
      }

      var sp = document.getElementById("aspan");
      var stys = sp.getAttribute("style").split(";");
      var rules = {};
      for(var i=0; i<stys.length;i++){        
        var sty = stys[i].split(":");
        if(sty.length>=2){
          rules[sty.shift().trim().toLowerCase()] = sty.join(":").trim();
        }
      }

      alert(rules["color"]);
      alert(rules["background-color"]);

    </script>
  </body>
</html>

JSBIN

Это не поймает то, что добавлено через код JS. он же elem.style.foo="bar"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...