dynmisch Inhalt von <object>-tag ändern
netzulf
- dhtml
Hallo zusammen,
weiß jemand, ob es möglich ist, den Inhalt eines <object>-tags dynamisch zu ändern?
Ich hab in einem object mittels data eine html-Seite eingebunden. Nun will ich, dass per Tasten- oder Mausclick eine andere Seite in das object geladen wird.
Das object tag selber steckt wiederum in einem div-layer. So will ich praktisch mit Hilfer mehrer solcher Layer auf der Hauptseite eine Übersicht bauen, auf der mehrere "Fenster" zu sehen sind, deren Inhalt durch Klicken veränderbar ist.
Ist so was überhaupt technisch realisierbar?
Gruss Netzulf
weiß jemand, ob es möglich ist, den Inhalt eines <object>-tags dynamisch zu ändern?
Antwort: Ja, es weiß jemand!
oder hattest Du folgendes erwartet:
Antwort: Ja, es geht!
Ist so was überhaupt technisch realisierbar?
schon besser:
Antwort siehe oben: Ja, es geht!
Soviel zur Präzision Deiner Fragen.
Leider funktioniert es in allen Browsern mal wieder anders.
Das Hauptproblem ist in der 'Mutterdatei' eine Referenz auf das Document bzw. Window im <object> -tag zu erhalten. Hierzu muß in den Tochterdateien (diejenigen, die in das <object> geladen werden) folgender Funktionsaufruf geschrieben werden:
if (!document.all || opera != -1) parent.sendObjRef(window, this.document);
Wie Du schon erkennen kannst, wird dies nur für Mozilla und Opera benötigt. Weiterhin impliziert dies natürlich, daß in der Mutterdatei eine Funktion stehen muß:
function sendObjRef(obj1, obj2)
{
myObj1=obj1;
myObj2=obj2;
}
myObj1 ist jetzt die Referenz auf das window-Objekt,
myObj2 ist die Referenz auf das document-Objekt.
Der dynamische Austausch der Dateien im <object> funktioniert dann für Mozilla, Opera und MSIE folgendermaßen:
if (!document.all) myObj1.location.href = loadFile;
else if (opera != -1) myObj2.location.href = loadFile;
else document.getElementById("f1").object.location.href = loadFile;
f1 ist hier die ID des <object>-tags
MfG
Klaus
Hallo Klaus,
herzlichen Dank, funktioniert perfekt! Werde mich in Zukunft natürlich besser ausdücken ;-)
Gruss Netzulf