« IE11でcreateStyleSheetが使えなくなってた&ブラウザ判別の問題 | トップページ | 「電気グルーヴのYouTube Music TV」iPadで見られるようにしてみた »

2014年9月10日 (水曜日)

innerHTMLを書き換えようとしたらInvalidって言われる

 またもJavaScriptプラグラミングでつまづいた話。InnerHTMLを書き換えようとするとエラー。

 Chromeでのエラーメッセージはこうだ。

SyntaxError: Failed to set the 'innerHTML' property on 'Element': The provided markup is invalid XML, and therefore cannot be inserted into an XML document.

 一方、IE11では「 Syntax Error 」とだけ言われる。これじゃ、なんのことやらわからない。これに比べるとChromeのメッセージはだいぶ手がかりにはなる。

 このエラーが出るのは一部のWebページのみ。その違いがわからない。DOCTYPEとかHEADタグの違いかなあ、と思うのだけど、同じようなので大丈夫なのもある。

 とりあえず、いろいろ調べる。文字通り、書き換えるためのコードがXMLになってないってことだろうと思うので、細かくチェック。


 「 & 」とか引用符をエスケープしてみたけど、それは関係ない模様。 「 <br /> 」とすべきところを「 <br> 」みたいにしてるところがあった。閉じタグの問題であった。styleとかが付いてると見逃しがちなのだよな。これも文法チェッカ使えば楽だったのかもしれず。そういうエディタ使えっていう話もあるんだろうけど。

 あとは、どういうドキュメントでこれが発生するかを調べなくてはならない。とりあえず後回し。


|

« IE11でcreateStyleSheetが使えなくなってた&ブラウザ判別の問題 | トップページ | 「電気グルーヴのYouTube Music TV」iPadで見られるようにしてみた »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/35726/60295288

この記事へのトラックバック一覧です: innerHTMLを書き換えようとしたらInvalidって言われる:

« IE11でcreateStyleSheetが使えなくなってた&ブラウザ判別の問題 | トップページ | 「電気グルーヴのYouTube Music TV」iPadで見られるようにしてみた »