Henry: JS kann Styleangeben nicht lesen?

Beitrag lesen

Hallo,

ich wollte mit Javascript den aktuellen Displayzustand eines Elements auslesen. Seltsamerweise und überraschend funktioniert das aber offensichtlich nur wenn die Styleangabe direkt im Element eingebaut ist. Warum?

*Das folgende Beispiel habe ich erfolglos versucht bei Fiddle und Dabblet einzutragen. Wäre dankbar für Alternativmöglichkeiten(außer CodePen).

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>JS read CSS</title>

<style>
#p1{display:block;}
</style>

<script type="text/javascript">
function showcss(id)
{
var navobj = document.getElementById(id).style.display;
alert(navobj);
}
</script>

</head>
<body>

<p id="p1">#p1 Hier im Style deklariert</p>
<p id="p2" style="display:block;">#p2 Hier im Element deklariert</p>
<p>
<button onclick="showcss('p1');">Eigenschaft von #p1</button>
<button onclick="showcss('p2');">Eigenschaft von #p2</button>
</p>

<pre>
Warum kann JS Styleangeben ausserhalb des Elements nicht lesen?

Während die Angabe im TAG problemlos erkannt wird, wird sie aus dem Stylesheet im Head nicht erkannt.
</pre>

</body>
</html>

Gruss Henry