2009-09-07 13 views
7

Je ne trouve pas le problème et je continue de recevoir cette erreur dans Internet Explorer 8, car c'est la seule erreur que je reçois. Des pensées sur ce que cela signifie, ou une solution simple? Je n'ai pas remarqué de problèmes avec mon code, c'est juste le message qui me dérange.Erreur d'analyse HTML

Détails de l'erreur de page Web.

User Agent: Mozilla/4.0 (compatible; MSIE 8.0 , Windows NT 5.1, Trident/4.0; .NET CLR 2.0.50727 ; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729) timestamp: lun 7 septembre 2009 19:11:13 UTC

Message: HTML Parsing Error: Unable to modify the parent container element before the child element is closed (KB927917) 
Line: 0 
Char: 0 
Code: 0 
+2

On dirait que vous modifiez des éléments dom avant qu'ils ne soient disponibles de manière fiable. – meandmycode

+0

Qu'est-ce que cela signifie réellement? – Homework

+0

Montrez-nous le code. –

Répondre

7

la réponse est là dans l'erreur - KB927917 dit:

Ce problème se produit car un élément HTML de conteneur enfant contient le script qui tente de modifier l'élément parent du conteneur enfant . Le script tente de modifier l'élément de conteneur parent en utilisant soit la méthode innerHTML ou la méthode appendChild .

Par exemple, ce problème peut se produire si un élément DIV est un conteneur enfant dans un élément de corps, et un bloc SCRIPT dans l'élément DIV tente de modifier l'élément du corps qui est un conteneur parent pour la Élément DIV.

3

Le message d'erreur que vous obtenez indique "KB927917". Ceci est une référence à une entrée dans la base de connaissances de Microsoft.

Plus précisément: Why do I receive an "Operation aborted" error message when I visit a Web page in Internet Explorer?

Sur cette page, il y a des informations pour les utilisateurs finaux et les développeurs; ceux-ci pourraient vous aider à comprendre ce qui cause ce problème.
Cette partie semble intéressante (citant):

Ce problème se produit parce qu'un enfant élément conteneur HTML contient un script qui tente de modifier l'élément conteneur parent du conteneur enfant . Le script tente de modifier l'élément de conteneur parent en utilisant soit la méthode innerHTML ou la méthode appendChild .

Par exemple, ce problème peut se produire si un élément DIV est un conteneur enfant dans un élément de corps, et un bloc SCRIPT dans l'élément DIV tente de modifier l'élément du corps qui est un conteneur parent pour la Élément DIV.


Il y a aussi un lien vers cette entrée de blog: What Happened to Operation Aborted?

Sur cette entrée, il y a exactement le message que vous obtenez (ce qui semble être la façon dont traite IE8 avec ce problème - où les anciennes versions affichaient simplement une sorte de boîte d'alerte et une page blanche); donc, pourriez-vous aussi ;-)

1

Cette solution de contournement fonctionne très bien:

setTimeout(function() { 
    "scary DOM manipulations" 
}, 0);