Hallo an alle !
Vor fünf Tagen hab ich angefangen, HTML und JavaSkript zu lernen.
Im Moment probier ich grade, folgendes Problemchen zu lösen:
Ich habe eine HTML-Datei mit einer Tabelle gebastelt, die so breit
ist, wie das Browserfenster.
<table width="100%">
Ich möchte jetzt erreichen, daß - sobald sich die Höhe einer bestim-
mten Tabellenzelle ändert - die komplette HTML-Datei im Browser neu
gezeichnet wird.
<td id="id">Das ist mal die Zelle</td>
Die Höhe einer Tabellenzelle (ihre id sei "id") bekommt man - wenn
ich alles, was ich bisher gelesen habe, richtig verstanden habe -
über:
document.all[id].clientHeight (IE5+)
bzw.
(document.all)?document.getElementById(id).clientHeight:document.getElementById(id).offsetHeight (NETSCAPE)
Das Browserfenster neu zeichnen kann man über:
window.history.go(0);
Das Problem liegt im Event-Handling:
Hat jemand eine Idee, wie ich die ständige Überwachung der Änderung der Zellenhöhe implementieren könnte ?
____________________________________________________________
Prinzipiell gibt es dazu ja zwei Möglichkeiten:
Möglichkeit 1: Unmittelbare Überwachung des Wertes für die Zellhöhe
auf Änderung hin und ggf. gewünschtes Neuzeichnen:
document.all[id].clientHeight bzw. das entsprechende Netscape-
Pendant ständig daraufhin überwachen, ob sich der darin
gespeicherte Wert ändert und im Änderungsfall das Neuzeichnen
durchführen.
Wie man in JavaScript die ständige Überwachung eines einzelnen
Wertes/einer Variablen auf Änderung implementiert, weiss ich
leider (noch) nicht.
Bin dem aber auf der Spur. Kann man da vielleicht mit
irgendeinem .onchange was machen ? Wenn ja, wo müsste das hin ?
(head, body oder in den td-tag)
Möglichkeit 2: Mittelbare Überwachung, indem man
a) alle Ereignisse überwacht, die ggf. eine Änderung der
Tabellenzellenhöhe bewirken könnten, und
b) das Neuzeichnen auf Verdacht ausführt sobald eines dieser
Ereignisse eintritt.
Die Ereignisse, die in diesem Fall überwacht werden müssten,
wären:
1. Änderung der Fenstergröße
2. Änderung des Anzeigeschriftgrades (Ansicht -> Schriftgrad ->
Sehr klein/klein/mittel/gross/ sehr gross)
3. Welche, die ich vergessen habe.
Bisher bin ich an Möglichkeit 2.
Überwachung von Ereignis 1 (Fenstergrößenänderung) und ggf. Neuzeich-
nen bei Eintritt habe ich hinbekommen (Habe dazu den schönen Event-
Handler window.onresize entdeckt). Bei Überwachung von Ereignis 2
(Anzeigeschriftgradänderung) hapert es schon. Die Ereignisse 3
bereiten mir natürlich auch Sorge ;-)
Für Antworten bedanke ich mich schon mal recht herzlich im voraus
und verbleibe
mit freundlichem Gruß
als
LiveSucks