プログラミング: 2015年5月アーカイブ

うーむ・・・
相変わらず 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;; とかなっちゃうけど、ちゃんと理解するんやろか?

このアーカイブについて

このページには、2015年5月以降に書かれたブログ記事のうちプログラミングカテゴリに属しているものが含まれています。

前のアーカイブはプログラミング: 2015年4月です。

次のアーカイブはプログラミング: 2015年9月です。

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


月別 アーカイブ

電気ウナギ的○○ mobile ver.

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