index

2002年 6月
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
2002年 7月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        
2002年 8月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
  19 20 21 22 23 24 25
  26 27 28 29 30 31  

アレ

  ▽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 の特定構文だけがエラーになるってのも...?

index