iPhoneのSafariで、動的に生成した選択肢がピッカーに出ない件
ECサイトや問い合わせフォームなどで、直前の選択肢によって、次の選択肢リストが動的に変わる、というものがある。
このようなページでは、
1、選択肢が変わるたびに、非同期でサーバへアクセスし、次の選択肢の情報を取得する。
2、ページアクセス時に、各選択肢の候補リストをすべてサーバから取得し、動的に選択肢は変わるけれども、非同期でサーバへのアクセスは発生しない。
という2つの作り方がある。
「直前の選択肢に連動して、次の選択肢のリストが変わる」という部分のロジックは同じで、JavaScriptで記述することになると思うが、制作作業量的には、1でも2でもそれほど変わらないので、個人的には1のほうが、より理に適った方法だと思っていた。
ところが、iPhoneのSafariでは、1の方法にすると、ピッカーで選択肢を選び、そのままピッカーの上に出ている「>」をタップして、次の選択肢に移動した場合、次のピッカーの選択肢がカラになってしまう。非同期で情報を取得するタイミングと、ピッカーが生成されるタイミングの問題かもしれないが、iOS8までのSafariで現象を確認した。バグといっていいと思う。
私は、1の「サーバへ非同期でアクセスする方法」によってページを作り、この問題に遭遇した。
それで、ググってみたところ、動的に選択肢を作る方法を説明したサイトがいくつか見つかったが、この問題についての記述はなく、しかもiPhoneで表示してみると、ピッカーを出したまま移動しても、次の選択肢がちゃんと出てくる!
ちょっと焦ったが、それらのサイトのソースを見たところ、非同期処理ではなく、すべての選択肢候補を最初に配列・変数に入れて、それを動的に呼び出しているものだった。
で、もしかしたら違いは「非同期かどうか?」と、2の方式に直したところ、私の作ったページでもちゃんとピッカー移動で選択肢が出るようになった。
AndroidのChromeでは発生しないし、PCのブラウザでもそもそも関係ない。iPhoneだけというのが悩ましいが、シェアを考えるとiPhoneに合わせるしかない。iPhoneユーザーの多くは、ピッカーの「>」で移動なんかしない、ということならいいが、そんな統計ないと思うので、非同期アクセスの選択肢は作らない(作れない)、で対応するしかないのかな-。
Firefoxで動的に生成したプルダウンメニューがマウスで選択できない件
本日時点で最新のFirefox(バージョン40.0.2)では、JavaScriptで動的に生成したSelect⇒optionの選択肢をマウスで選べない。
具体的には、マウスカーソルの移動と共に、選択肢の反転表示も移動するが、クリックしても、その下の選択肢が選べない。反応しない。
キーボードの矢印キーで移動して、Enter押下では選択できた。
ここでいう「動的に生成」とは、JavaScriptでDOM要素を生成し、それをダイアログボックス形式でブラウザのセンターに表示したもの。
position:absoluteでダイアログボックスを表示し、その中にプルダウンメニューを生成した。
バージョン38.0.5でも問題なかったことを確認済み。
ググったけどヒットしないので、なぜかと思ったが、最新バージョンのバグか!
【追記】
8/28にバージョン40.0.3が落ちてきたが、ソッコーで修正したみたい。選択できるようになったので、この記事で取り上げたバグは解消した。
ZenFone 2でIngress
ZenFone 2の勝手に再起動の嵐は、アプリ「オートコネクト」のせいと判明し、その後、不意の再起動は皆無になった。
で、当初の予定通り、イングレス用マシンをNexus7からZenFone2に変更したのだが、1つ問題が。イングレスを表示したまま、ZenFone 2がスリーブに入ると、スリーブ解除後は百発百中で、イングレスが落ちる。
ホーム画面だったり、別アプリがメインのときは問題ない。
Nexus 7でも、ハード再起動後の最初のイングレス起動時に、イングレスは地球がぐるぐるしている途中で消えてしまい、再度起動しなおすことが頻発していた。
スリーブで、イングレスが落ちるのもハードというよりも、イングレス側の問題のような気がする。
ZenFone 2のOSは5.0、イングレスは、スマートウォッチ対応の1.81.0。
ZenFone 2の再起動頻発の原因がわかったかも。(オレの場合)
Expansysで購入し、7/15夕方届いたsimフリーのZenFone2。さっそくbiglobe LTEのSIMを差し使えるようにした。うれしい!
が、本日16日朝から、ひどい再起動の嵐に見舞われ、「こりゃ、初期不良品をつかまされたな。面倒だなあ」と気分が超落ち込む。
修理か返品か、考えながら、いろいろと触っていたら、原因らしきものが判明したので、その経緯を記録として残す。
1、15日夜はSIMを入れた後、自宅だったので「フライトモード」でWifi通信のみを使っていた。再起動には見舞われず。
2、16日は朝から、モバイル通信をオンにし、かつWiMAX2のモバイルWifiルータも稼働し、両構えで出勤。すると数秒から数分で再起動の嵐。
3、モバイル通信機能が故障している可能性があるので、再度、フライトモードにしWifiだけにすると、再起動なし。
4、ふと思い立ち、モバイルWifiルータを切り、SIMだけのモバイル通信にしたら、こちらもなぜか再起動なし。あれれ???
5、ということは、Wifiとモバイル通信の切り替え動作で不具合が発生している可能性あり。「いずれにしても初期不良か」と気分は晴れず。
6、「再起動記録(リブートログ)」というアプリを入れて、どれだけ再起動するか、初期不良の証拠とすることに。
7、モバイル通信オン、Wifiオンの状態で、丸亀製麺まで昼飯を食いに行ったら、その途中で5回も再起動!たったの5分もないうちに。
6、ハードの故障以外に考えられるのは、アプリだが………。そういえば、Biglobeが配布している「オートコネクト」というアプリを昨晩入れたことを思い出す。バックグラウンドでWifi電波と4Gを識別して、切り替えてくれるらしいが、biglobe LTE SIM契約者が利用できるフリーのWiFiと、SIMでの通信を自動で切り替えてくれるらしいが、もしかしたらこいつが原因か? さっそくアンインストール。
7、そしたら、なんと丸亀製麺の帰りはまったく再起動が発生せず。それからまだ50分ぐらいしか経っていないが、リブートログに記録なし!
やったぜー!
「新宿御苑の自然を感じる1~20」アートメダルミッション
5/30土曜にアートメダルミッションの1つとして、新宿御苑を回った。
虫除け必須という話を聞いていたが、半袖Tシャツという軽装で何も対策しなかった。御苑の外側の道路で、もうヤブ蚊の大群にやられてしまった。
クーラー対策として持ち歩いていた長袖パーカーを取り出し、ジッパーを首まで引き上げ、減量中のボクサーのような出で立ちでミッションスタート。
午前10時ぐらいから始め、終わったのが午後2時過ぎ。前半は、グリフハックしてデプロイして、という動きだったので、予想外に時間がかかり、後半はひたすらハックハック。予定通り、昼飯は食わずで、歩き続けた。
午前中は人もまばらで、「こんなもんか」と思っていたが、天気もよく午後になると団体・カップル・家族連れなどでえらい混みよう。ちょっとひく。
明らかに同じミッションをしていると思われる人が何人かいた。最後のミッションあたりでついに声をかけられ(リアルキャプチャというらしい)、しばらく立ち話。秋葉原から来たといっていた。最近アキバにもアートメダル用ミッションができた話をしたが、昼間は人がすごいので、店が閉まるぐらいの時間がいい、というアドバイスをもらう。
全30ミッションを終え、次なる目的地、錦糸町に総武線で向かう。
Nexus7でイングレス
Nexus7 2013でイングレスするのに限界を感じている。ちゃんと動くスマホが手元にない。
現在、所有する端末は以下。
どれも古いなあ。
WordPressのカスタマイズ
テーマをあてて、ヘッダの背景色や見出しの文字色を変えた。
これ以上のカスタマイズは、CSSいじるという話になると、何のためのCMSなのかという気がする。
「ここから先は有料です」「ここから先はテンプレートを直接いじれ」って。
「テーマをがらっと別のものに変える」というのは「ちゃぶ台替えし」のような気がして違うような。
すごく細かい設定までメニュー化されているテーマが世の中にはあって、みんながそれを使っているのだろうか?
この15年ほど、ずっと思っていることなんだけど。
ミッション覚え
錦糸町の錦糸公園から全24ミッションがあるらしいので、近いうちに行きたい。
ゴールは南砂町らしい。
その他に、やってみたいミッション。
追加0708
■高田馬場散策
18個
■「目黒の富士」全18ミッション
中目黒駅前を出発
■皇居SAMURAI 壱~拾弐
忍者の終了が、侍11のスタート付近
■皇居NINJA
九段下駅から日本武道館へ向かい、そのまま北の丸公園の中
■「暫」東京江戸歌舞伎散歩-54
スタートはJR市ヶ谷駅の「江戸城石垣跡」。
完成図は浮世絵
■芝浦港南地区の道路橋1~24
JR浜松町駅の小便小僧がスタートとのこと。
完成図は浮世絵
■家紋が最高
日比谷公園周辺は済み。残りは以下。
熊本藩(丸の内オアゾ、最寄駅:JR東京駅(丸の内北口))
久保田藩(神田西口商店街、最寄駅:JR神田駅)
仙台藩(汐留シオサイト、最寄駅:JR新橋駅)
薩摩藩(NEC本社ビル、最寄駅:都営三田線三田駅)
久留米藩(三田1丁目、最寄駅:都営大江戸線赤羽橋駅)
小田原藩(旧芝離宮恩賜庭園、最寄駅:JR浜松町駅)※入園料150円 開園時間
加賀藩(東京大学本郷キャンパス、最寄駅:東京メトロ本郷三丁目駅)
津藩(神田和泉町、最寄駅:JR秋葉原駅(昭和通り口))
庄内藩(大手町フィナンシャルビル、最寄駅:東京メトロ大手町or東京駅から徒歩5分程度)
メダルは各藩の家紋になり単独だが、美しいデザイン。
■秋葉原電気街めぐり1~18
スタートは、電気街口のラジオ会館
完成図は写真
■葛飾北斎生誕の地を巡る-24
錦糸町から両国まで北斎通り
完成図は浮世絵。※5/30済み
■新宿御苑の自然を感じる1~30
完成図は写真。※5/30済み