Warum wurden Frames in HTML5 entfernt, nicht jedoch in iFrames? Immerhin gibt es fast keinen Unterschied zwischen den beiden. In vielen Fällen würde die Verwendung einer der beiden die gleiche Ausgabe liefern (entschuldigen Sie, wenn ich falsch liege)?

Kommentare

Antwort

In Ihrem Beitrag sind einige Missverständnisse enthalten Die Elemente div id = „95c8725f34″>

und frameset sind in HTML5 nicht veraltet. Sie sind veraltet (dh sie wurden vollständig entfernt).

Zweitens die frame und

-Elemente sind nicht dasselbe wie das iframe -Element, und sie geben auch nicht dieselbe Ausgabe aus:

  • Das frameset -Element ersetzt das body-Element in Seiten, um ein anderes Dokumentmodell für Webseiten aufzunehmen: Sie sind schlecht für die Benutzerfreundlichkeit und Zugänglichkeit und was sie beabsichtigt haben zu erreichen wurden vollständig durch CSS und allgegenwärtige serverseitige Entwicklung ersetzt.

  • Das iframe -Element hingegen tut dies Ersetzen Sie nicht den Hauptteil einer Seite. Es dient als Mittel zum Einfügen eines neuen Browserkontexts, der in einen Inhaltsblock eingebettet ist. Es hat nicht die gleichen Usability- oder Accessibility-Probleme wie das Frameset-Modell und wird fast überall dort verwendet, wo ein eingebetteter Browserkontext enthalten sein muss (Widgets sind das produktivste Beispiel). 1

Die iframe in HTML5 übernimmt auch zusätzliche Funktionen, da sie sandboxed , damit das übergeordnete Dokument entscheiden kann, was darin ausgeführt wird. Dies ermöglicht ein gewisses Maß an Sicherheit für das übergeordnete Dokument (und die Besucher des übergeordneten Dokuments) beim Einbetten nicht vertrauenswürdiger Inhalte.


Hinweise

Hinweis 1: Das object -Element überschneidet sich etwas mit dem iframe -Element, hat jedoch ein anderes Inhaltsmodell (das hauptsächlich für Plugins vorgesehen ist). hat seine eigenen Vorbehalte und verfügt nicht über die Sandbox-Attribute, die das iframe -Element hat.

Kommentare

  • Warum sind Frameset-Elemente schlecht für die Benutzerfreundlichkeit von " " und " Barrierefreiheit ", aber iframe-Elemente sind nicht ' t?
  • @meriton Das Frameset erstellt eine Seite aus mehreren Dokumenten, alle mit Dieselbe Priorität: Dies führt zu Herausforderungen für Bildschirmleser , die nicht wissen, auf welches Dokument sie sich zu einem bestimmten Zeitpunkt konzentrieren sollen. I. Rahmenelemente hingegen werden einfach in eine einzelne Seite eingebettet: ' unterscheidet sich nicht von einem eingebetteten Bild.
  • Herausforderungen für Bildschirmleser: Die Blinden, mit denen ich gesprochen habe, haben alle gesagt, dass sie es vorziehen, die Navigation in einem separaten Frame (nicht in iFrame) zu speichern, weil sie sie ignorieren und nur dann vorlesen lassen können, wenn sie möchten. Der eigentliche Schuldige für Screenreader ist Javascript und AJAX, wodurch Seiten mit aktuellen Screenreadern völlig unbrauchbar werden (meine Informationen sind ungefähr 10 Monate alt). Meine persönlichen Erfahrungen mit Bildschirmleseprogrammen unterstützen dies.
  • Ich ' habe mich gefragt, ob 2005 ' viele Häufig angeforderte Zugänglichkeitszusicherungen waren ' für ein Update nicht überfällig. Vielen Dank für die Ablehnung.
  • @GlenPeterson Der gleiche Effekt ohne Frame-Element kann erzielt werden, indem CSS verwendet wird, um das Blockelement im Ansichtsfenster zu fixieren. So sollte es gemacht werden, wenn Sie diese Art der Navigation wollen. Dies ist sinnvoller.

Antwort

Framesets werden häufig so verwendet, dass sie gegen das Grundprinzip von verstoßen das Web – dass jedes Dokument eine einzige URL hat. Dies führt zu Problemen mit Verknüpfungen, Lesezeichen, Suchmaschinen usw.

Die typische Verwendung eines Framesets ist ein Frame oben mit einem Logo oder einer Kopfzeile, ein Frame an der Seite mit einem Menü und a Inhaltsrahmen. Suchmaschinen indizieren jedoch einzelne Seiten. Wenn Sie also eine Seite in Google finden, wird diese ohne das Frameset direkt auf die Inhaltsseite verlinkt, sodass Sie die Navigation verlieren.Das Problem mit Links und Lesezeichen besteht darin, dass Sie normalerweise eine bestimmte Inhaltsseite innerhalb des Framesets verknüpfen oder mit einem Lesezeichen versehen möchten, ohne das Frameset selbst zu verlieren. Das ist kein einfacher Weg, das zu tun.

Der Grund, warum Framesets überhaupt populär wurden, war, dass sie einen statisch positionierten Header und ein Menü mit einem scrollenden Inhaltsbereich zuließen. Mit CSS kann dies heute jedoch viel einfacher erreicht werden. Darüber hinaus konnten Sie mit Frames gemeinsame Elemente wie Logos und Menüs auf mehreren Seiten verwenden, ohne serverseitige Codierung zu verwenden. Dies war ein Vorteil in einer Zeit, in der die serverseitige Codierung langwierig und fehleranfällig war (dh CGI-Skripte) und viele Hosts überhaupt keine serverseitige Skripterstellung zuließen. Heute mit Content Management Systems (CMS) und besserer serverseitiger Auf Plattformen wird dies auf der Serverseite viel besser gehandhabt.

Die Verwendung eines Framesets bietet also grundsätzlich keine Vorteile, sondern nur viele Probleme.

IFrames können auf die gleiche Weise verwendet werden, wie Framesets verwendet wurden, und in diesem Fall auch zu denselben Problemen führen. Es gibt jedoch auch viele legitime Verwendungen von iframes, die nicht zu denselben Problemen führen.

Antwort

Frames (Frameset) fungieren als Dokument. Sie werden entfernt, da sie die Struktur und Navigation von HTML-Dokumenten beschädigen. Z.B. Sie haben Links in einem Frame, Inhalt im anderen, Sie können keinen Link von der Seite in einem neuen Fenster öffnen, Sie können keinen Link zu einer bestimmten Unterseite usw. erstellen.

Auf der anderen Seite Hand-Iframes werden bei korrekter Verwendung nichts beschädigen, da sie für Sandbox-Inhalte (z. B. Anzeigen) bestimmt sind.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.