Perché i frame sono stati rimossi in HTML5, ma non iFrame? Dopotutto, non cè quasi nessuna differenza tra i due. In molti casi lutilizzo di uno di essi darebbe lo stesso risultato (scusatemi se sbaglio)?

Commenti

Risposta

Ci “un paio di idee sbagliate nel tuo post. Primo, il frame e frameset non sono obsoleti in HTML5, sono “ obsoleti (cioè, “sono stati rimossi completamente).

Secondo, frame e

gli elementi non sono la stessa cosa dellelemento iframe, né danno lo stesso output:

  • Lelemento frameset sostituisce lelemento body nelle pagine come mezzo per includere un modello di documento diverso per le pagine web: sono dannose per lusabilità e laccessibilità e per ciò che intendevano da realizzare sono stati completamente sostituiti dai CSS e dallonnipresente sviluppo lato server.

  • Lelemento iframe, daltra parte, lo fa non sostituire il corpo di una pagina. Agisce come mezzo per includere un nuovo contesto di navigazione incorporato in un blocco di contenuto. Non soffre degli stessi problemi di usabilità o accessibilità del modello frameset e viene utilizzato quasi ovunque sia necessario includere un contesto di navigazione incorporato (i widget sono lesempio più prolifico). 1

Il iframe in HTML5 assume anche funzionalità aggiuntive in quanto può essere sandbox , consentendo al documento genitore di decidere cosa viene eseguito al suo interno. Ciò consente una certa misura di sicurezza per il documento principale (e i visitatori del documento principale) quando si incorporano contenuti non attendibili.


Note

Nota 1: lelemento object si sovrappone in qualche modo allelemento iframe, ma ha un modello di contenuto diverso (destinato principalmente ai plug-in), ha una propria serie di avvertenze e non ha gli attributi di sandboxing dellelemento iframe.

Commenti

  • Perché gli elementi del set di frame sono dannosi per l " usabilità " e " accessibilità " ma gli elementi iframe non sono ' t?
  • @meriton Il frameset costruisce una pagina da più documenti tutti con con la stessa priorità: questo causa sfide per gli screen reader che non sanno su quale documento concentrarsi in un momento specifico. I gli elementi frame, daltra parte, sono semplicemente incorporati in una singola pagina: ' non è diverso dallavere unimmagine incorporata.
  • Sfide per gli screen reader: I non vedenti con cui ho parlato hanno tutti detto che preferiscono che la navigazione sia bloccata in un frame separato (non iFrame) perché possono ignorarlo e farlo leggere solo quando lo desiderano. Il vero colpevole degli screen reader sono Javascript e AJAX che rendono le pagine completamente inutilizzabili con gli screen reader attuali (beh, le mie informazioni risalgono a circa 10 mesi fa). La mia esperienza personale con gli screen reader lo supporta.
  • Mi ' mi sono chiesto se molti ' del 2005 spesso le asserzioni di accessibilità riqualificate non ' erano in ritardo per un aggiornamento. Grazie per il dissenso su questo.
  • @GlenPeterson lo stesso effetto senza elemento frame può essere ottenuto utilizzando CSS per rendere lelemento blocco fisso nella visualizzazione. Questo è COME dovrebbe essere fatto se vuoi quel tipo di navigazione. Ha più senso.

Risposta

I set di frame sono spesso usati in un modo in cui infrangono il principio fondamentale di il Web – che ogni documento ha un singolo URL. Questo porta a problemi con collegamenti, segnalibri, motori di ricerca ecc.

Luso tipico di un set di frame sarebbe un frame in alto con un logo o unintestazione, un frame a lato con un menu e un cornice del contenuto. Ma i motori di ricerca indicizzano le singole pagine, quindi quando trovi qualche pagina in Google, si collega direttamente alla pagina di contenuto senza il set di frame, quindi perdi la navigazione.Il problema con collegamenti e segnalibri è che in genere si desidera collegare o aggiungere un segnalibro a una particolare pagina di contenuto allinterno del set di frame, senza perdere il set di frame stesso. Non è un modo semplice per farlo.

Il motivo per cui i frameset divennero popolari in primo luogo era perché consentivano unintestazione e un menu posizionati staticamente con unarea di contenuto scorrevole. Ma oggi questo può essere ottenuto molto più facilmente con i CSS. Inoltre i frame ti consentivano di utilizzare elementi comuni come loghi e menu su più pagine senza utilizzare alcuna codifica lato server. Questo era un vantaggio in un momento in cui la codifica lato server era noiosa e soggetta a errori (ad es. Script CGI) e molti host non consentivano affatto lo scripting lato server. Oggi con Content Management Systems (CMS) e un migliore lato server piattaforme, questo è molto meglio gestito dal lato server.

Quindi fondamentalmente non ci sono vantaggi nellusare un frameset, solo molti problemi.

IFrames può essere usati nello stesso modo in cui venivano usati i frameset, e in tal caso portano anche agli stessi problemi. Ma ci sono anche molti usi legittimi di iframe che non portano agli stessi problemi.

Risposta

Frames (frameset) funge da documento. Viene rimosso perché interrompe la struttura e la navigazione dei documenti HTML. Per esempio. hai collegamenti in un frame, contenuto nellaltro, non puoi aprire il link dalla pagina in una nuova finestra, non puoi collegarti a una sottopagina specifica, ecc.

Dallaltra gli iframe a mano non danneggiano nulla se usati correttamente perché sono destinati a contenere i contenuti (ad es. annunci).

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *