fehler bei hintergrundänderung

flooo

Erfahrenes Mitglied
hi
ich habe ein Inputfeld (type="file") mit einem onChange-Eventhandler
Code:
<input type="file" name="file" onChange="javascript:wechsel(this.value)"/>
der folgende Funktion aufruft
Code:
function wechsel(neubild)
{
    alert(neubild);
    document.getElementByID("vorschau").style.backgroundImage='url("' + neubild + '")';
}
Weiterhin habe ich eine Tabelle (id="vorschau") mit einer Zelle mit css eigenschaften
Code:
<td id="vorschau" width="30%" rowspan="6" style="background-image:url('c:\ein_bild_auf_meiner_platte.jpg'); background-repeat: no-repeat; background-position: center center;"></td>
ja und die Funktion soll nun dieses Hintergrundbild ändern, tut sie aber leider nicht, Fehler im IE
"Das Objekt unterstützt diese Eigenschaft oder Methode nicht"
bitte helft mir
flooo

EDIT:
komischerweise zeigt opera das bild gar nicht an mmh idee
ausßerdem hier der fehler von opera
Code:
Event thread: onchange
Error:
name: TypeError
message: Statement on line 57: Expression did not evaluate to a function object: document.getElementByID
Backtrace:
  Line 57 of linked script http://www.flozirkus.com/supi/funktionen.js
    document.getElementByID("vorschau").style.backgroundImage = "url(\"" + neubild + "\")";
  In unknown script
    wechsel(this.value);
  At unknown location
    {event handler trampoline}

der Mozillafehler ist zwar eindeutiger, aber verstehen tu ich ihn deshalb noch nich
Code:
Error: document.getElementByID is not a function
in der Zeile wo getElementById steht steht

EDIT:
Vergesst den THREAD, es lag nur am großen 'D' in document.getElementById
 
Zuletzt bearbeitet:
Naja - soweit ich weiß kannst Du mit dem Befehl nur die Klasse ändern aber nicht direkt eine Stylesheetformatierung zuweisen.

Ich würde einmal versuchen zwei unterschiedliche Klassen mit den verschiedenen Hintergrundbildern (z.B. "klasse1" und "klasse2") zu definieren und erst diese dann bei Bedarf zuweisen. Das ist auch übersichtlicher:

Code:
document.getElementById("vorschau").className = "klasse1";

Abgesehen davon hast Du das "d" bei "getElementById" groß geschrieben. Vielleicht ist ja auch allein das schon das Problem...

Ich hoffe ich konnte ein wenig helfen.

Liebe Grüße
Onsemeliot
 
Zuletzt bearbeitet:
nach den uhrzeiten zu urteilen, hatte ich schon geschrieben, dass es am großen D lag, trotzdem danke, mit kleinem d funktioniert es wunderbar
flooo
 

Neue Beiträge

Zurück