▽20020710a
#日記
ASP(Active Server Pages の方ね)と IE の組み合わせが妙な挙動を示すので, いちおう書き留めておこう... ある種の条件下で,JavaScript の一部の構文が不当にエラー扱いされる現象が発生する.
- meta タグによるコンテンツの encoding 指定なし
- asp ファイルであること.html では同内容でも発生しない
- 外部の JavaScript を script src="" で取り込む (同ファイル内に展開すると発生しない)
- JavaScript 内で a += x + y の構文を使用. 加算代入演算子 += の右オペランドに + 演算子による式を指定,だ
- asp の HTML 部分に,特定の文字列, 正規表現(PCRE)でいうと /^?s+?+?d+-/, つまり「文頭に +数字-」の文を使用
以上の条件で,JavaScript がエラーになる. 最後の条件は,今回の HTML では国際電話番号の表記で該当した. 「+81-3-***」ってやつだ.
これがどういう現象であるのかさっぱりわからない... charset 指定がないことにより IE が「+」文字を解釈ミスしている気がするんだけど, それなら ASP じゃなく HTML でも発生するはずだし, HTML 部分にある文字列のせいで JavaScript の特定構文だけがエラーになるってのも...?