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