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

Jaydson Gomes: O Nosso Amigo iFrame

Embed Size (px)

DESCRIPTION

7Masters JavaScript | Jaydson Gomes

Citation preview

Page 1: Jaydson Gomes: O Nosso Amigo iFrame

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

Page 2: Jaydson Gomes: O Nosso Amigo iFrame

Jaydson Gomes

Terra BrazilJSRSJS

JavaScriptHTML5

Page 3: Jaydson Gomes: O Nosso Amigo iFrame

Agenda● Especificação● HTML5● Cases

Page 4: Jaydson Gomes: O Nosso Amigo iFrame

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.

Page 5: Jaydson Gomes: O Nosso Amigo iFrame

Especificação

Same Origin Policy!

Page 6: Jaydson Gomes: O Nosso Amigo iFrame

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

Page 7: Jaydson Gomes: O Nosso Amigo iFrame

HTML5Attributes 5:src srcdoc name sandbox seamless

Page 8: Jaydson Gomes: O Nosso Amigo iFrame

HTML5srcdoc

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

Page 9: Jaydson Gomes: O Nosso Amigo iFrame

HTML5sandbox

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

Page 10: Jaydson Gomes: O Nosso Amigo 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

Page 11: Jaydson Gomes: O Nosso Amigo iFrame

HTML5sandbox

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

Page 12: Jaydson Gomes: O Nosso Amigo iFrame

HTML5seamless

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

Page 13: Jaydson Gomes: O Nosso Amigo iFrame

True Cases

Page 14: Jaydson Gomes: O Nosso Amigo iFrame

True Cases

Evil document.write()

Page 15: Jaydson Gomes: O Nosso Amigo iFrame

True Cases

Page 16: Jaydson Gomes: O Nosso Amigo iFrame

True Cases

LocalStorage Cross-domain

Page 17: Jaydson Gomes: O Nosso Amigo iFrame

True Cases

Page 18: Jaydson Gomes: O Nosso Amigo iFrame

GlobalStorage

HTML

PostMessage()<iframe>cross-domain

www.terra.com

gs.terra.com

Page 19: Jaydson Gomes: O Nosso Amigo iFrame

True Cases

* Cross-domain

Page 20: Jaydson Gomes: O Nosso Amigo iFrame

True Cases

Page 21: Jaydson Gomes: O Nosso Amigo iFrame

Obrigado!