IFrame
Daniel K.
- javascript
Hy,
kann mir jemand sagen wie ich per script ein schon fertig geladenes IFrame neu lade mit einer andere source?
thx
hallo
wenn du etwas neu laden tuen dann es seinen egal wie code ist, denn er wird sowieso übertragen. befehl (oder besser methode des objektes) ist reload() ... gucken mal in selfhtml nach unter javascript und objektreferenz.
cu
ulli
Hy,
reload() gibt es als Methode nicht unter IFrame.
Kann es sein das IFrame statisch ist und garnicht "reloaded" werden kann?
MfG
hallo
doch doch ... beim unterobjekt location von frame gibt es die methode reload().
cu
ulli
hi,
doch doch ... beim unterobjekt location von frame gibt es die methode reload().
genauer gesagt liegt location unterhalb von window - wobei jedes frame-objekt aber natürlich auch wieder ein instanz des window-objektes darstellt ;-)
gruss,
wahsaga
OK, unter Frame mag es die Eigenschaft geben, aber unter Iframe nicht. mag sein das ich blind bin, aber ich lass mich gerne mit einem codebeispiel des besseren belehren.
doch doch ... beim unterobjekt location von frame gibt es die methode reload().
hi,
OK, unter Frame mag es die Eigenschaft geben, aber unter Iframe nicht.
die art des zugriffs mit javascript auf einen iframe unterscheidet sich von der auf einen "normalen" frame _nicht_.
gruss,
wahsaga
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