奇妙なエラーに遭遇したとき、IE8 と IE9 のエラーのバグ修正を行っています。HTML には<section class="create">
タグがありますが、ページが読み込まれた後、ページの少し下にまったく同じタグがあります。最初は、どういうわけか悪いjavascriptの複製があると思っていましたが、section
javascriptを無効にしましたが、ページがロードされた後もまだそこにありました。これは、このタグを作成する HTML パーサーでなければなりませんよね? レンダリングされた HTML は、HTML ファイルとまったく一致しません。
</div>
HTML パーサーがタグやタグなどが欠落している場合に追加することは知っていますが、何らかの理由で</html>
IE が再度開いたり、タグを追加したりすることはありますか? もしそうなら、これは何が原因ですか?そうでない場合、javascript が無効になっているときに、HTML に存在しないタグが DOM に追加される原因は何ですか?
私が取り組んでいる HTML ページの長さは 20,000 行を超えており、不正な形式の HTML がいたるところにあり、そのいずれかが DOM を不適切にレンダリングする原因となっている可能性があります。この質問に追加できるスニペットがあれば、コメントでお知らせください。
この問題を再現する最小限の HTML を次に示します。form
タグではなく、タグ内でのみ発生することに注意してくださいdiv
。フォーム要素が閉じられた後、section
タグは IE8 および IE9 で再び開かれるため、2 つsection
の要素が作成されます。
<!DOCTYPE html>
<html>
<head></head>
<body>
<form>
<section class="create">
CREATE SECTION
</form>
</body>
</html>
そして、ここにフィドルがあります:http://jsfiddle.net/VurE6/
記録として、IE10、Chrome、Firefox、および Safari では、この動作は表示されません (私が知っていることです)。