Em um script carregado de forma assíncrona, esse código pode ser substituído por:

var container = document.getElementById(\\\"container\\\");var content = document.createElement(\\\"span\\\");content.style.color = \\\"red\\\";content.innerHTML = \\\"Hello\\\";container.appendChild(content);

Alternativamente, como o contêiner está vazio, o seguinte código simplificado pode ser usado:

var container = document.getElementById(\\\"container\\\");container.innerHTML = \\'Hello\\';

Ao adotar essas técnicas de manipulação de DOM, os desenvolvedores podem efetivamente gravar em documentos a partir de scripts carregados de forma assíncrona, evitando as limitações imposto por document.write().

","image":"http://www.luping.net/uploads/20241104/17307187276728ac0702fe7.jpg","datePublished":"2024-11-09T03:16:22+08:00","dateModified":"2024-11-09T03:16:22+08:00","author":{"@type":"Person","name":"luping.net","url":"https://www.luping.net/articlelist/0_1.html"}}
"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Por que document.write() é restrito em scripts carregados de forma assíncrona?

Por que document.write() é restrito em scripts carregados de forma assíncrona?

Publicado em 2024-11-09
Navegar:480

Why is document.write() Restricted in Asynchronously Loaded Scripts?

Restrições de execução em scripts carregados de forma assíncrona: Noções básicas sobre document.write() Limitações

A tentativa de gravar em um documento a partir de um script carregado de forma assíncrona aumenta uma mensagem do console, "Falha ao executar 'gravação' em 'Documento': não é possível gravar em um documento a partir de um script externo carregado de forma assíncrona, a menos que seja aberto explicitamente." Esta mensagem pode aparecer apesar do comportamento esperado do script, deixando os desenvolvedores confusos.

Por que a restrição existe

Scripts carregados de forma assíncrona geralmente são executados após o documento ter sido analisado e fechado. Consequentemente, usar document.write() a partir de tais scripts torna-se problemático porque o documento não está mais aberto para escrita.

Solução: manipulação explícita de DOM

Em vez de usar document .write(), os desenvolvedores devem manipular explicitamente o DOM em scripts carregados de forma assíncrona. Isso envolve a criação de elementos DOM e sua inserção no elemento pai desejado usando métodos como .appendChild(), .insertBefore() ou configuração .innerHTML.

Exemplo: Manipulação de DOM

Para ilustrar, considere o seguinte script embutido:

Em um script carregado de forma assíncrona, esse código pode ser substituído por:

var container = document.getElementById("container");
var content = document.createElement("span");
content.style.color = "red";
content.innerHTML = "Hello";
container.appendChild(content);

Alternativamente, como o contêiner está vazio, o seguinte código simplificado pode ser usado:

var container = document.getElementById("container");
container.innerHTML = 'Hello';

Ao adotar essas técnicas de manipulação de DOM, os desenvolvedores podem efetivamente gravar em documentos a partir de scripts carregados de forma assíncrona, evitando as limitações imposto por document.write().

Declaração de lançamento Este artigo foi reimpresso em: 1729404437 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3