Jaydson Gomes: O Nosso Amigo iFrame

Post on 22-Apr-2015

976 views 0 download

description

7Masters JavaScript | Jaydson Gomes

Transcript of Jaydson Gomes: O Nosso Amigo iFrame

O nosso amigo <iFrame>Jaydson Gomes - 7Masters 2013

Jaydson Gomes

Terra BrazilJSRSJS

JavaScriptHTML5

Agenda● Especificação● HTML5● Cases

EspecificaçãoHTML inline frame element:

* Representa outro contexto de navegação

* Outra página HTML embedada

* HTML 4.01 diz que um documento deve ter um <head> e um <body>, ou um <head> e um <frameset>, mas não um <body> e um <frameset>. <Iframes> podem ser usados normalmente no documento.

Especificação

Same Origin Policy!

EspecificaçãoAttributes 4.01:align frameborder height longdesc marginheight marginwidth scrolling width

HTML5Attributes 5:src srcdoc name sandbox seamless

HTML5srcdoc

Conteúdo sem “src”, ou seja, não há necessidade de um arquivo HTML!

HTML5sandbox

Permite adicionar um conjunto de restrições extras sobre o conteúdo de um iframe.

HTML5sandbox

* Não permite a navegação em outros contextos* Não permite navegação ao top-level* Impede plugins <embed><object><applet>* Impede que um iframe filho possua seamless* Força uma origem única, impedindo acesso a mesma origem* Bloqueia submissão de formulários e execução de scripts* Bloqueia auto-trigger

HTML5sandbox

allow-same-origin allow-top-navigation allow-scripts allow-forms

HTML5seamless

Browser renderiza o iframe de maneira que o mesmo pareça fazer parte do documento

True Cases

True Cases

Evil document.write()

True Cases

True Cases

LocalStorage Cross-domain

True Cases

GlobalStorage

HTML

PostMessage()<iframe>cross-domain

www.terra.com

gs.terra.com

True Cases

* Cross-domain

True Cases

Obrigado!