Ответ 1
Я не думаю, что вы можете получить доступ к недопустимым именам свойств, по крайней мере, это не работает в Chrome или Firefox для меня. CSSStyleDeclaration просто пропускает недопустимое свойство. Для данного CSS:
div {
width: 100px;
-my-foo: 25px;
}
style:CSSStyleDeclaration
объект содержит только следующие клавиши:
0: width
cssText: "width: 100px"
length: 1
Однако, интересно, это то, что DOM-Level-2 Style spec говорит:
Хотя реализация может не распознавать все свойства CSS в блоке объявления CSS, ожидается, что она предоставит доступ ко всем указанным свойствам в таблице стилей через интерфейс CSSStyleDeclaration.
подразумевая, что объект CSSStyleDeclaration должен был перечислить свойство -my-foo
в приведенном выше примере. Возможно, там есть какой-то браузер, который его поддерживает.
Код, который я использовал для тестирования, находится в http://jsfiddle.net/q2nRJ/1/.
Примечание. Вы всегда можете сделать DIY, разобрав необработанный текст. Например:
document.getElementsByTagName("style")[0].innerText
но для меня это похоже на большую работу, и, не зная причин для этого, я не могу сказать, существует ли альтернатива для вашей проблемы.