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"}}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().
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