Klaus B.: IFrame

Beitrag lesen

Hy,
kann mir jemand sagen wie ich per script ein schon fertig geladenes IFrame neu lade mit einer andere source?

thx

das geht mit location.href, nur brauchst Du zunächst eine Referenz auf das iframe-Element. Die bekommst Du z.B. mit folgender Funktion:

function getziel()
         {
         if (!document.all) return document.getElementById("f1").contentWindow;
         else return document.all.f1.contentWindow;
         }

wobei "f1" die ID des IFRAMEs ist.

Beachte aber, daß IFRAME ab XHTML1.1 nicht mehr erlaubt ist, dann mußt Du auf das object-Element zurückgreifen und die Datei mittels des data-Attributes einbinden.

um hier die Referenzen auf die richtige window-Instanz zu bekommen, muß diese in standardkonformen Browsern aus dem object an das übergeordnete Fenster gesendet werden:

function sendObjRef(obj1, obj2)
        {
        myObj1=obj1;
        myObj2=obj2;
        }

diese Funktion steht in dem übergeordneten Fenster, bzw. ist dort eingebunden, wird aber aus der Datei im object-Element aufgerufen:

if (!document.all) parent.sendObjRef(window, this.document);

myObj1 (Mozilla) und myObj2 (Opera) können nun als Referenz auf die Window-Instanz verwendet werden:

if (!document.all) myObj1.location.href = prefix + x;
else if (opera != -1) myObj2.location.href = prefix + x;

MSIE hält sich dagegen an die alte Syntax:

else document.getElementById("f1").object.location.href = prefix + x;

MfG
Klaus