dedlfix: JS kann Styleangeben nicht lesen? *teilw. gelöst

Beitrag lesen

Tach!

Wenn also getComputedStyle(eineVariable) ist, dann verstehe ich das noch weniger, im Selfhtml Beispiel ist es ja auch der Elementenname(Button).

Nein, das war kein Elementname. Das muss eine Referenz auf ein Element sein, das in dem Beispiel zufällig in einer gleich benannten Variable referenziert war. Hat man noch keine Referenz, muss man sie sich erst erstellen, woraus auch immer. ID, Element- oder Klassenname plus welcher von den möglicherweise mehreren oder Position im DOM können zum identifizieren genommen. Das kombiniert mit der entsprechenden Funktion, die dir dazu die Elementreferenz gibt, also getElementById() und so weiter. Die wird in einer Variable abgelegt und die Variable dann übergeben.

  • funktionieren tut aber nur:
  • var navobj = window.getComputedStyle(p1).display;

Nö, das funktioniert nur, wenn p1 eine Variable ist, die auf dein Element verweist.

Und wie das funktioniert. Will jetzt nicht wieder den ganzen Code posten, aber probiers erst mal aus:

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

p1 ist in diesem Stück Code nicht definiert. Vielleicht ist es anderenorts global definiert, vielleicht sitzt du da aber auch nur einer Besonderheit eines Browsers auf, der automagisch aus Elementen mit IDs eine gleichnamige Variable erstellt, was wohl meines Wissens kein Standard ist und dir anderenbrowsers nicht zur Verfügung steht. Nimm das statt der auskommentierten Zeile:

var p1 = document.getElementById(id);

dedlfix.