Hi Com,
habe da ein Problem mit Javascript.
Ich lasse per JS die Breite des Contents der Webseite dynamisch an die Breite des darstellbaren Bereichs des Anzeigefensters des Browsers einstellen.
Dies geschieht mit
Code:
with (document)
{
getElementById("main_table").style.width = main_document_width;
...
...
...
}
Zur Info: main_document_width ist eine Variable welche ich vorher deklariere und mit einem Wert vorbelege. Diese Variable macht keinerlei Probleme.
Allerdings macht der Firefox zicken. Der Internet Explorer und der Opera führen den Javascript-Code ohne Fehlermeldungen aus.
Der FF führt den Code nicht aus, schreibt in der Fehlerkonsole aber folgendes
Zitat:
Warnung: Fehler beim Verarbeiten des Wertes für 'width'. Deklaration ignoriert.
Quelldatei: Hier die Adresse
Zeile: 0
Hat jemand vielleicht eine Idee warum der Firefox so rumzickt?
Sowohl der IE als auch der Opera und der Firefox zeigen, wenn ich die Variable per alert() ausgeben lasse, eine reine Zahl an. Der Wert kommt von dem Objekt document.body.clientWidth.
Mittlerweile führt der Opera die dynamische Breitenanpassung auch nicht mehr aus und gibt in seiner Fehlerkonsole folgendes aus:
Zitat:
DOM style property
Invalid value for property: width
In Javascript kenne ich mich nicht gut genug aus um den Fehler selbst zu finden. Laut SelfHTML handelt es sich aber um korrektes Javascript. Habe mich an die Beschreibung in SelfHTML gehalten.
Nein.
Opera und FF meckern ja nicht auf den Wert sondern auf das Objekt width von getElementById("main_table").style.width.
Außerdem. Wenn ich mir im IE per alert(); das getElementById("main_table").style.width ausgeben lasse, so gibt mir dieser den Wert mit der Einheit px zurück, ohne dass ich diese extra manuell anhänge.
DOM style property
Invalid value for property: width
naja laut der fehlermeldung ist auf jeden fall der wert den width bekommt falsch / ungültig
Zitat:
Zitat von knight1
Außerdem. Wenn ich mir im IE per alert(); das getElementById("main_table").style.width ausgeben lasse, so gibt mir dieser den Wert mit der Einheit px zurück, ohne dass ich diese extra manuell anhänge.
der IE macht viele dinge, wie sachen die fehlen versuchen zu ergänzen, die in andern browsern aber nicht funktionieren
das einfach bei allen zeilen machen, dann sollte es auch in allen browsern laufen.
die berechnungen solltest du vlt noch in klammern setzen (a-b) + 'px'
Ich dachte immer die Browser nutzen automatisch die Einheit welche im Rest des HTML-Codes und den CSS-Dateien genutzt wird.
Nunja. Das anhängen der Einheit (nutze px) hat jedenfalls geholfen, auch ohne die Berechnungen nochmal extra zu Klammern.
Mir war zwar klar dass der FF und der Opera penibler als der IE sind was korrekten Code angeht, allerdings dass die beiden Browser so extrem sensible sind dass sie dann ganz den den Dienst verweigern was Javascript angeht ist schon krass.