MyNoteBook weblog

自作ソフトウェアや気になるものについて書いています

<< February 2012 | 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 >>

ブラウザごとに違う「返り値」でつまずいたこと

js-STARをバージョンアップしていてつまずいたのでメモします。
safari5.1がすべての発端!!

Javascriptで
result = prompt('値を入力してね!','');
とすると、ダイアログが開いてユーザーからの入力を要求します。
そのダイアログには、「OK」「キャンセル」の2つのボタンがあり、
値を入力して「OK」をクリックしたときは、その値がresultに代入されます。

しかし!!
「キャンセル」をクリックしたときはどうかというと、
これがブラウザごとにことなるんですよ。

IE、FireFox、Chromeは、null
Operaは、undefined
safariは、false

ここでやっかいなのが、safariなんです。
まず、iPhoneやiPadのsafariでは、返り値はfalseではなくnullなんです。
そしてこれが一番厄介なんですけど、何も入力しなくて「OK」をクリックしても
resultにfalseが代入されてしまう。
つまり、「OK」「キャンセル」とキャンセルの区別がつかない。

いろいろ調べてみると、safari5.1になっていろいろとバグがあるようで
このpromptでのfalseの問題もそのときからのようです。
safari5.0ではnullが返されていたようなので・・・。

そんなこともあって、safariは動作保障から外そうかなと考えている
今日なのです。

というか、早く治して!
ソフトウエア | - | trackbacks (0)
CATEGORIES
NEW ENTRIES
RECOMMEND
【いちばんやさしい教える技術】…
いちばんやさしい教える技術

Book (発売日:2012-04-16)
【いままでのA面、B面ですと!?(通常盤)】…
いままでのA面、B面ですと!?(通常盤)

Music (発売日:2009-11-25)
RECENT TRACKBACK
ARCHIVES
PROFILE
OTHER