Como exatamente isso se relaciona com o jQuery? Sei que a biblioteca usa funções nativas de javascript internamente, mas o que exatamente ela está tentando fazer sempre que esse problema aparece?
javascript
jquery
domexception
Julian Weimer
fonte
fonte
response.xml
quando disponível. Por exemplo,$(e).append(response.xml || $(response));
Se você está recebendo este erro devido a uma chamada de jquery ajax, $ .ajax
Talvez seja necessário especificar o que o dataType está retornando do servidor. Corrigi muito a resposta usando essa propriedade simples.
fonte
Especificamente com o jQuery, você pode encontrar esse problema se esquecer os pontos em torno da tag html ao criar elementos:
Irá gerar esse erro porque o que você quis dizer foi
fonte
Este erro pode ocorrer quando você tenta inserir um nó no DOM que é HTML inválido, que pode ser algo tão sutil quanto um atributo incorreto, por exemplo:
fonte
@Kelly Norton está certo em sua resposta
The browser thinks the HTML you are attempting to append is XML
e sugerespecifying the content type when fetching via XHR
.É verdade, porém, às vezes você usa bibliotecas de terceiros que não vai modificar. É JQuery UI no meu caso. Em seguida, você deve fornecer o direito
Content-Type
na resposta em vez de substituir o tipo de resposta no lado do JavaScript. Defina seuContent-Type
comotext/html
e você está bem.No meu caso, foi tão fácil como mudar o nome do
file.xhtml
parafile.html
- servidor de aplicativos tiveram algum extensão MIME tipos de mapeamentos de fora da caixa. Quando o conteúdo é dinâmico, você pode definir o tipo de resposta do conteúdo de alguma forma (por exemplo,res.setContentType("text/html")
na API do Servlet).fonte
Você pode ver essas perguntas
Obtendo HIERARCHY_REQUEST_ERR ao usar Javascript para gerar recursivamente uma lista aninhada
ou
Diálogo da UI do jQuery com postagem do botão ASP.NET
A conclusão é
ao tentar usar o acréscimo de função, você deve usar nova variável, como este exemplo
No exemplo acima, usa o var "dlg" para executar a função appendTo. O erro "HIERARCHY_REQUEST_ERR" não será exibido novamente.
fonte
Encontrei este erro ao usar a extensão do Google Chrome Sidewiki. Desativá-lo resolveu o problema para mim.
fonte
Vou adicionar mais uma resposta específica aqui, porque foram duas horas de busca pela resposta ...
Eu estava tentando injetar uma tag em um documento. O html era assim:
Se você notar, a tag está fechada no exemplo anterior (
<area/>
). Isso não foi aceito nos navegadores Chrome. O w3schools parece achar que deveria estar fechado e não consegui encontrar as especificações oficiais dessa tag, mas com certeza não funciona no Chrome. O Firefox não aceita com<area/>
ou<area></area>
ou<area>
. O Chrome deve ter<area>
. IE aceita qualquer coisa.De qualquer forma, esse erro pode ocorrer porque seu HTML não está correto.
fonte
Sei que este tópico é antigo, mas encontrei outra causa do problema que outras pessoas podem achar útil. Eu estava recebendo o erro com o Google Analytics tentando anexar-se a um comentário em HTML. O código incorreto:
Isso estava causando o erro porque meu primeiro elemento foi um comentário em HTML (ou seja, um código de modelo do Dreamweaver).
Modifiquei o código incorreto para algo reconhecidamente não à prova de balas, mas melhor:
fonte
Se você enfrentar esse problema ao tentar anexar um nó a outra janela no Internet Explorer, tente usar o HTML dentro do nó em vez do próprio nó.
O IE não suporta anexar nós a outra janela.
fonte
Esse erro aconteceu comigo no IE9 quando tentei anexar uma criança dinamicamente a uma que já existia em uma janela A. A janela A criaria uma janela filho B. Na janela B, após alguma ação do usuário, uma função seria executada e executaria uma appendChild no elemento de formulário na janela A usando
window.opener.document.getElementById('formElement').appendChild(input);
Isso geraria um erro. O mesmo ocorre com a criação do elemento de entrada usando
document.createElement('input');
na janela filho, passando-o como um parâmetro para awindow.opener
janela A e, em seguida, o anexo. Somente se eu criar o elemento de entrada na mesma janela em que o anexaria, ele será bem-sucedido sem erros.Assim, minha conclusão (verifique): nenhum elemento pode ser criado dinamicamente (usando
document.createElement
) em uma janela e, em seguida, anexado (usando.appendChild
) a um elemento em outra janela (sem dar talvez uma etapa extra específica que perdi para garantir que ele não seja considerado XML ou alguma coisa). Isso falha no IE9 e gera o erro, no FF isso funciona bem.PS. Eu não uso jQuery.
fonte
Outro motivo para isso acontecer é que você está anexando antes que o elemento esteja pronto, por exemplo
Nesse caso, você precisará mover o script após o. Não tenho certeza se isso é kosher, mas mover o script após o corpo não parece ajudar: /
Em vez de mover o script, você também pode fazer o acréscimo em um manipulador de eventos.
fonte
Eu recebi esse erro porque esqueci de clonar meu elemento.
fonte
Somente para referência.
O IE bloqueará a adição de qualquer elemento criado em um contexto de janela diferente do contexto da janela ao qual o elemento está sendo anexado.
por exemplo
Ainda não descobri como criar um elemento dom com jQuery usando um contexto de janela diferente.
fonte
Eu recebo esse erro no IE9 se eu tiver desativado a opção de depuração de scripts (Internet Explorer). Se eu ativar a depuração de script, não vejo o erro e a página funciona bem. Parece estranho o que a exceção do DOM tem a ver com a depuração ativada ou desativada.
fonte