O elemento iframe: src e sandbox
Incorpore páginas de terceiros e restrinja seus recursos.
O elemento iframe: src e sandbox é uma aula grátis de HTML Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de HTML Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de HTML Academy inclui 4 aulas no total.
O que é um iframe?
O elemento <iframe> incorpora outro documento HTML na página atual. Cada iframe tem seu próprio contexto de navegação, DOM e escopo de JavaScript. O conteúdo dentro de um iframe não pode acessar o DOM da página pai sem permissão explícita.
Uso básico de iframe
Defina o atributo src como a URL a ser incorporada: <iframe src="https://example.com" width="800" height="600">. O iframe cria um novo contexto de navegação. O atributo title é obrigatório para acessibilidade: title="Embedded map".
O atributo sandbox
sandbox aplica restrições ao conteúdo do iframe: desativa scripts, formulários, pop-ups e plug-ins por padrão. Adicione permissões específicas para restaurar capacidades: sandbox="allow-scripts allow-same-origin".
Permissões do sandbox
allow-scripts: ativa o JavaScript. allow-same-origin: permite que o iframe seja tratado como da mesma origem (necessário para acessar localStorage). allow-forms: permite o envio de formulários. allow-popups: permite window.open(). Conceda somente o mínimo necessário.
iframes de origem cruzada
iframes de origem cruzada não podem acessar o DOM pai: parent.document gera um erro de segurança. A comunicação entre quadros de origens diferentes usa postMessage: iframe.contentWindow.postMessage(data, origin).
Comunicação com postMessage
Envie mensagens da página pai para o iframe: iframe.contentWindow.postMessage({ type: "update", data: {} }, "https://embed.example.com"). No iframe, escute as mensagens: window.addEventListener("message", handler). Sempre verifique event.origin antes de processar a mensagem.
Carregamento tardio de iframes
loading="lazy" em iframes adia o carregamento até que o iframe esteja próximo da janela de visualização, reduzindo o carregamento inicial da página. É útil para mapas abaixo da área inicialmente visível, vídeos incorporados e widgets de redes sociais que não estão imediatamente visíveis.
Desempenho de iframe
Cada iframe carrega um documento HTML, CSS, JavaScript e recursos separados — um custo significativo de recursos. Evite iframes para conteúdo que poderia ser incorporado como um trecho. Faça o carregamento tardio de iframes abaixo da dobra. Considere padrões de fachada (mostre um espaço reservado e carregue ao clicar).
Controle de rolagem
Controle o comportamento de rolagem do iframe: scrolling="no" desativa as barras de rolagem (obsoleto; use CSS overflow: hidden no iframe). A abordagem moderna é definir a altura do iframe para corresponder à altura do conteúdo, eliminando a necessidade de barras de rolagem internas.
Atributo allow
O atributo allow concede recursos da Política de Permissões ao iframe: allow="camera; microphone; fullscreen". Isso permite que o iframe solicite acesso à câmera, acesso ao microfone e à API de tela cheia, mesmo quando a origem pai não usa esses recursos.
Incorporando YouTube e Maps
YouTube e Google Maps fornecem códigos de incorporação de iframe. Eles incluem atributos allow para tela cheia e reprodução automática. Sempre adicione title="Video title" para garantir a acessibilidade a leitores de tela. O atributo sandbox normalmente não é adicionado aos códigos de incorporação de terceiros — consulte a documentação deles para obter orientações de segurança.
Verificação de conhecimentos
O que o atributo sandbox faz com um iframe, por padrão, quando não tem valores?
Resumo
Os iframes incorporam documentos externos em contextos de navegação isolados. O atributo sandbox restringe os recursos do iframe — conceda apenas as permissões mínimas necessárias. postMessage permite uma comunicação segura entre origens diferentes. O carregamento tardio adia o custo dos recursos de iframes abaixo da dobra. O atributo allow concede recursos da Política de Permissões a incorporações de terceiros confiáveis.
Perguntas Frequentes
A aula “O elemento iframe: src e sandbox” é grátis?
Sim — o texto completo de “O elemento iframe: src e sandbox” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de HTML Academy, atualize para CoddyKit PRO. O curso de HTML Academy inclui 4 aulas no total.
O que vou aprender em “O elemento iframe: src e sandbox”?
Incorpore páginas de terceiros e restrinja seus recursos. Você pratica HTML Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar HTML Academy?
Nenhuma experiência prévia é necessária. HTML Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.
Quanto tempo leva a aula “O elemento iframe: src e sandbox”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de HTML Academy?
Sim. Cada aula de HTML Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- O elemento iframe: src e sandbox
- Segurança de iframe: clickjacking e X-Frame-Options
- Os elementos embed e object
- Carregamento tardio de iframes