無料ブログ「rentafree.net」の管理人ブログ

モバイルブラウザでのブログエディター

Firefox Beta34で確認した際にマウスイベント時のselectionの破損バグが無くなっていると判断していたので、
touchイベントとrange状態を判別した上でコンテキストメニューの表示と非表示を切り替えることで対応させようとしたのですが、
Firefox Beta35で試したところ、修正されていると思っていたselectionの破損バグが存在したようで、contextmenuイベント時にrangeの取得が出来なかったので諦めました・・・

以前からタッチパネル端末へのブログエディター対応が最大の課題だと考えていますが、相変わらず厳しいです。

ブログエディターでは、テキストの特定範囲を選択して選択範囲へ処理を行う機能が搭載されていますが、
PCではコマンドをマウス右クリックのコンテキストメニューから選択するようになっていますが、
タッチパネル用のブラウザでは、
  • テキスト選択 → テキスト長押し
  • コンテキストメニュー → テキスト長押し
と、コンテキストメニューとテキスト選択が同じ操作なのでブラウザがコンテキストメニュー機能に完全に対応出来ていません。

range状態を判別して、こちらでコンテキストメニューの有効・無効を切り替えれば実用的なレベルで対応できそうなのですが、
  1. マウスイベント時にrangeを取得しようとするとエラーが発生する。
  2. oncontextmenuイベント時にイベント伝達を停止するとコンテキストメニューが表示されない。
というバグを把握しています。
2に関してはセキュリティーを犠牲にすれば対応できるのですが、
1に関してタッチに対応させようとすると見た目の選択範囲と処理範囲に食い違いが生じてしまう可能性があるので避けたいです。

通常の方法ではマウスイベント時にrangeに対して処理が行えないので、エディター上部メニューからの処理も行えません。


Google Chromeの場合はバージョンによって挙動が変わる気もしますが、テキスト上で長押しすると選択が優先されてコンテキストメニュー(Firefox以外では擬似コンテキストメニュー)が表示されないようです。
こちらはコンテキストメニュー自体が非対応なので仕様に問題があるとは思いますが、
バグは無さそうなので、テキスト選択をした上でエディター上部メニューから処理を行うことは可能です。


現状ではタッチパネル端末でブログエディターを利用する場合は、Google Chromeの方をおすすめしますが、機能に制限がある状態です。
Firefox以外のブラウザはコアがBlink又はWebKitですので、Firefox以外のブラウザはほぼ全てChrome互換です。

バージョン8以下のIEにメッセージを表示するようにしました

バージョン8以下のInternet Explorerで公式サイトを利用しているユーザーさんがまだ居るようなのですが、
いずれは対応ブラウザから外して利用できないようにしたいので、
バージョン8以下のIEで公式サイトトップページを表示した場合にブラウザの変更をお願いするメッセージを表示するようにしました。

コード量が多いのはブログエディターですが、
JavaScriptのコードを書く際に、バージョン8以下のInternet Explorerは他のブラウザと共通コードを利用できない箇所が多くなってしまうので、
現在のところブログエディターのスクリプトはバージョン8以下のInternet Explorerとその他のブラウザで完全に分けています。
既にバージョン8以下のInternet Explorer用スクリプトには機能追加等は行っていませんが、他ブラウザと処理内容が違うので完全に廃止してコードを統一したいです。

Windows Vista のInternet Explorer初期搭載バージョンが7なので、IE7及びIE8はMicrosoftのサポートを2017年まで受けられると思いますが、
VistaではIE9が利用可能ですのでIE9へのバージョンアップをお願いします。
IEではなくFirefoxの利用への変更をおすすめします。

IE8を利用している方は主にWindows XPの方だと思いますが、Windows XPは既にMicrosoftのサポート期限が切れているので、XPでインターネットに接続するのは危険です。
XPを使い続ける場合はFirefoxの利用をお願いします。
XPで最新のFirefoxを使う場合、XPにService Pack 3を適用する必要があります。


公式サイトの方はバージョン8以下のIE利用者がいなくなれば、すぐにでもバージョン8以下のIEを非対応にしたいです。

公開されるユーザーサイトに関しては、機能追加スクリプトでバージョン8以下のIE専用のコードが使われていますが、
こちらの方はコード量もさほど多くなく滅多に更新も行いませんので、少なくともWindows VistaのMicrosoftサポート期限までは維持するつもりです。