hintergrund zur laufzeit ändern - FF Prpblem
bastisf1
- javascript
hallo habe ein problem, was sonst...
hab eine tabelle "tabx" deren hintergrundbild zur laufzeit geändert werden soll:
<table id="tabx" width=200 height=200 background="img/back1.jpg"><tr><td> </td></tr></table>
zum ändern verwende ich javascript:
<script language=javascript>
function ch(){
document.getElementById("tabx").background="img/back2.jpg";
}
</script>
das ganze funktioniert im InternetExplorer 6 supi,
aber im Firefox (1 und 2) passiert nix. auch keine fehlermeldung.
Hintergrundfarbe ändern funktioniert mit:
document.bgColor="#2C2E54";
aber das mit dem Wallpaper nicht.
Hab dazu nirgends eine Lösung gefunden.
kann mir da jemand helfen?
danke im voraus!
Moin
sinnvoller wäre es, schon zu Anfang die CSS-Eigenschaft background-image zu nutzen (oder die Kurzform background zusammen mit Farbangaben usw.)
und zum Ändern dann natürlich
document.getElementById("tabx").style.backgroundImage="xy.jpg";
Gruß
rfb
Hallo,
und zum Ändern dann natürlich
document.getElementById("tabx").style.backgroundImage="xy.jpg";
Hier steht es anders beschrieben. und zwar mit ...backgroundImage="url(abc.gif)";
Kann aber gut sein, dass beide Wege funktionieren.
mfG,
steckl
Hallo,
und zum Ändern dann natürlich
document.getElementById("tabx").style.backgroundImage="xy.jpg";
Hier steht es anders beschrieben. und zwar mit ...backgroundImage="url(abc.gif)";
Kann aber gut sein, dass beide Wege funktionieren.
Glaube ich weniger. Man bearbeitet ja CSS-Eigenschaften, also muss man sich auch an CSS halten und da muss man das Bild immer mit url(…) referenzieren.
mfg. Daniel
Moin
sorry, mein Fehler.
Natürlich ist nur die Syntax mit url() korrekt (und funktioniert auch).
Gruß
rfb
Hello out there!
zum ändern verwende ich javascript:
<script language=javascript>
Dann tu das bitte richtig. JavaScript-Bereiche in HTML definieren
Hab dazu nirgends eine Lösung gefunden.
SELFHTML kennst du? Schön. Click.
Dass du im Kapitel JavaScript/DOM nachschauen musst, ist dir auch klar? Schön. Click.
Sollte dein Problem in den Anwendungsbeispielen beschrieben sein? Nachschauen. Click.
Sieht nicht so aus. Schade. Zurück. Click.
Objektreferenz vielleicht? Nachschauen. Click.
Oh, „1.2.3.1 style (CSS-Attribute von HTML-Elementen)“. Click.
See ya up the road,
Gunnar
Hallo,
function ch(){
document.getElementById("tabx").background="img/back2.jpg";
}
Hat eine Tabelle eine Eigenschaft namens „background“?
Keine Ahnung? Dann hilft ein Blick in die http://de.selfhtml.org/javascript/objekte/htmlelemente.htm#table@title=Elementobjekt-Referenz von SELFHTML.
Wie du siehst, existiert diese Eigenschaft nicht. Also musst du die überlegen, wie man das Problem noch lösen kann.
1. Wenn du ein Attribut einhängen willst, für das es keine passende Eigenschaft gibt. Dann könntest du setAttribute() verwenden.
2. Lässt sich das Problem aber viel einfach über Stylesheets lösen. Wie das geht, verrät dir rfb.
das ganze funktioniert im InternetExplorer 6 supi,
Teste niemals zuerst im IE. Zwar ist dieser bei JS manchmal sogar etwas weniger Fehlertolerant, aber wie du siehst nicht immer.
aber im Firefox (1 und 2) passiert nix. auch keine fehlermeldung.
Es ist auch kein Fehler. Das was du machst ist eine Erweiterung des Table-Objektes. Wenn du jetzt alert(deineTabelle.background)
schreibst, wird er dir die URI des Bildes anzeigen (also den Zugewiesen String).
[1] falls es sie gibt, sollte man setAttibute nicht einsetzen, weil der IE hier gravierende Schwächen hat
mfg. Daniel