, , .
, .
- (,
div p) , . - - , . ,
iframe.
, , - p, , . - .
- .
, . Firefox Chrome, , - , , - , for...in for...of, . , , , , . , , , , color: white.
, , , getNonDefaultStyles, , , , . , , , div , , ( DOM ), .
, . - StackOverflow iframe . JSFiddle. Fiddle.
var textarea = document.getElementById("textarea"),
paragraph = document.getElementById("paragraph");
function getNonDefaultStyles(el) {
var styles = {},
computed = window.getComputedStyle(el),
notTargetedContainer = document.createElement('div'),
elVanilla = document.createElement(el.tagName);
document.body.appendChild(notTargetedContainer);
notTargetedContainer.appendChild(elVanilla);
var vanilla = window.getComputedStyle(elVanilla);
for (let key of computed) {
if (vanilla[key] !== computed[key]) {
styles[key] = computed[key];
}
}
document.body.removeChild(notTargetedContainer);
return styles;
}
var paragraphStyles = getNonDefaultStyles(paragraph);
for (let style in paragraphStyles) {
textarea.value += style + ": " + paragraphStyles[style] + "\n";
}
#paragraph {
background: red;
}
textarea {
width: 300px;
height: 400px;
}
<p id="paragraph" style="color: white">
I am a DIV
</p>
<p>
User styles:
</p>
<textarea id="textarea"></textarea>
Hide result