KaFro: Statt Frames <object>???

In Selfhtml wird erwähnt, dass man statt Frames zu benutzen auch Datendateien als Objekt einbauen kann.

<object data="./input.html" type="text/html">
Ihr Browser kann das Objekt leider nicht anzeigen!
</object>

Das Ergebnis ist ja eigentlich dasselbe, als ob ich  iframes benutzen würde (oder nicht?). Da <object> allerdings html Standard ist, kann dies sogar in der HTML Variante "strict" benutzt werden.

Mich würden jetzt aber mal die genauen Unterschiede zwischen <iframe> und <object> (beim einbinden von html-Dateien) interessieren.

Gibt es bei xhtml weitere Unterschiede?

Gruß Kai

  1. Hallo, Kai,

    prinzipiell ist es ohne weiteres möglich, object anstatt iframe zu benutzen. Im Mozilla geht das ohne weiteres, Opera verschiebt bei margin nur den Rahmen des Objekts (angenommen man verpasst ihm per CSS einen), das ist ein sehr unschöner Effekt.

    Der Internet Explorer zeigt grausigerweise immer einen Rahmen an, zusätzlich zu dem, welchen man dem Objekt per CSS zuweist. Dies kann man unterdrücken, indem man per CSS dem html- oder body-Element des Dokuments innerhalb des Frames (!) border:0 zuweist.
    border="0" beim object-Element hilft übrigens nicht.

    Ein sehr großer Nachteil von object im Vergleich zu iframe ist, dass im Internet Explorer das Ausführen von Plugins und ActiveX aktiviert sein muss, sonst wird das Objekt nicht als solches angezeigt. Eine Sicherheitswarnung kommt in dem Falle auch, also überlege dir das noch einmal, denn leider benutzen viele den MSIE.

    <object data="./input.html" type="text/html">
    Ihr Browser kann das Objekt leider nicht anzeigen!
    </object>

    Gibt es bei xhtml weitere Unterschiede?

    Nicht dass ich wüsste. Ggf. nur implizit, weil die Browser zum standardkonformen Rendern angewiesen werden. Der MSIE schaltet jedoch bei XML-Deklarationen am Dokumentanfang den Quirks-Mode an... siehge http://home.t-online.de/home/dj5nu/iecpmodetest.html (das ist übrigens die einzige Seite auf der ich iframes verwende, ich wollte auch auf object umsteigen, habe es aber aus o.g. Gründen gelassen - border:0 habe ich übrigens dort noch nicht eingesetzt, weil es mir erst gerade aufgefallen ist).

    Mathias