IEはシングルクォーテーションが文字参照されちゃってもJSが動く

うーむ・・・
相変わらず InternetExplorer の動き、気持ち悪いな(^^;

今日、ASP.NET で吐き出した HTML ソースで JavaScript がうまく動かなくて昼からずっとハマってたんだけど、同じ内容のものを(実際は aspx.vb プログラム内で動的に作られる)手で作って動かすとちゃんと動く。でも、ASP.NET の画面では動かない・・・

ところが・・・だ。
ずっと Chrome でデバッグしてたんだけど(開発者向けのツール類が一番充実してるからな)、ふと InternetExplorer で動かしてみると動くやないか!!
ソースを見てみると、シングルクォーテーションが数値文字参照されちゃってるじゃん。

JavaScript内で、例えば「document.getElementById('hoge').style.display='none';」が「document.getElementById('hoge').style.display='none';」になっちゃうわけで、Chrome で実行すると「未定義または NULL 参照のプロパティ 'style' は取得できません」とエラーになる。

下のような HTML のソースで試してみると、Chrome では「男」のラジオボタンをチェックしても何も起こらないが、IEだと「女」も「男」もちゃんと下にメッセージが表示される。

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>TEST</title>
</head>
<body>
<form id="form1">
<input type="radio" name="b" id="b1" onclick="document.getElementById(&#39;d2&#39;).style.display=&#39;none&#39;; document.getElementById(&#39;d1&#39;).style.display=&#39;block&#39;"> 男<br>
<input type="radio" name="b" id="b2" onclick="document.getElementById('d1').style.display='none'; document.getElementById('d2').style.display='block';"> 女<br>
</form>
<br>
<div id="d1" style="display: none;">
俺は男だ!
</div>
<div id="d2" style="display: none;">
私は女よ!
</div>
</body>
</html>

うーん・・・

これ、例えば、document.form1.hoge.value = ''; で「シングルクォーテーション」を含む文字列をセットする時なんかどうなるんやろ?
「私は'悪戯天使'です」だと、document.form1.hoge.value = &#39;私は&#39;悪戯天使&#39;です&#39;; とかなっちゃうけど、ちゃんと理解するんやろか?

トラックバック(0)

このブログ記事を参照しているブログ一覧: IEはシングルクォーテーションが文字参照されちゃってもJSが動く

このブログ記事に対するトラックバックURL: https://blog.netandfield.com/mt/mt-tb.cgi/3411

コメントする

このブログ記事について

このページは、shinodaが2015年5月 8日 15:52に書いたブログ記事です。

ひとつ前のブログ記事は「下松SA(上り)の「ねぎラーメン」が美味かった」です。

次のブログ記事は「中華の店「美食亭」のラーメンはいけましたぞ」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。


月別 アーカイブ

電気ウナギ的○○ mobile ver.

携帯版「電気ウナギ的○○」はこちら