2010-08-28 (土)
■ .tar.gz ファイルがダウンロードできないのを修正する
こちら でコメントをいただいたのですが、 .tar.gz とか .tgz という拡張子のファイルをダウンロードしようとすると、 IE や Google Chrome でうまくダウンロードできないことがあります。
そもそも、レンタルサーバの設定がどこかおかしい気がするのですが、 対症療法ということで、.htaccess ファイルにこんな設定を追加してみました。 とりあえずはこれで問題を解決することができたようです。
AddType application/x-gzip .gz AddType application/x-tar-gz .tgz RemoveEncoding .gz .tgz
この設定は、以下のページに書かれている説明を参考にしています。
ただ、上のリンク先に書かれている設定そのままだと、 IE でダウンロードした時にファイル名がおかしくなったので、 少し設定をいじっています。
一応、最近のブラウザや IE6 で問題なくダウンロードできることは確認しましたが、 すべてのブラウザで正しく動作するかどうかはチェックしていませんので、 この設定を使おうとする方は注意して下さい。
それと、上のリンク先にも注意事項として書いてありますが、この設定は、 .gz ファイルを展開せずにそのままダウンロードさせる、という設定です。 スタイルシートを gzip で圧縮して転送、 といったことをやる場合には違う設定をすべきですので、 この設定はサイト全体に適用するのではなく、 ダウンロードしてもらう配布ファイルを置いてあるディレクトリにのみ、 適用する方が良いのではないかと思います。
2010-08-24 (火)
■ IE で HTML5 Canvas が使えるかどうかを調べる方法
えむけいさんに教えていただいた (1, 2) のですが、これは window.CanvasRenderingContext2D の値を調べれば分かります。
一応まとめておきますと、 まず、IE9 であっても HTML5 Canvas が使えない場合があります。
- Document Mode が IE9 の場合は、HTML5 Canvas が使える
- Document Mode が IE9 以外の場合は、HTML5 Canvas は使えない
さらに、IE9 における window.CanvasRenderingContext2D の値は、 次のようになっています。
- IE9 Platform Preview 3
- (HTML5 Canvas をサポートしているのに) undefined を返す
- IE9 Platform Preview 4 以降
- Document Mode が IE9 の場合は object を返す
- それ以外の Document Mode では undefined を返す
IE9 Platform Preview 3 の時には、 document.documentMode >= 9 という条件判定を使わないと、 HTML5 Canvas をサポートしているかどうかは調べられませんでした。
それに対し、IE9 Platform Preview 4 以降では、 HTML5 Canvas をサポートしているかどうかというのが、 window.CanvasRenderingContext2D の値にきちんと反映されています。
ということで FlashCanvas では、 次のように IE9 PP3 対策コードを一時的に追加していましたが、 IE9 PP4 以降では不要と判断して外すことにしました。
2010-08-17 (火)
■ HTML_Emoji 0.8.1 を公開
HTML_Emoji は、携帯3キャリアの絵文字を変換する PHP ライブラリです。
HTML_Emoji 0.8 からの変更点
- SoftBank の Shift_JIS → UTF-8 への変換を機種依存文字に対応
今回の更新は、掲示板で「通りすがりの開発者」さんからいただいた、 以下のコメントがきっかけです。
検討してみたところ、提案していただいた方法そのものは使えなかったのですが、 今回の実装をするにあたっての良いヒントになりました。
機種依存文字と絵文字の領域の重なり
今回気付いたのですが、 mb_convert_encoding() 関数で機種依存文字を UTF-8 → Shift_JIS に変換すると、 「NEC 選定 IBM 拡張文字」ではなく「IBM 拡張文字」の方に変換されるようです。
そうすると、一部の SoftBank の絵文字と機種依存文字の領域が重なるので、 機種依存文字を SoftBank の携帯に送ったら絵文字が表示された、 ということが起こる可能性があります。
ただし、これは Shift_JIS で表示した場合にのみ発生する問題です。 HTML_Emoji のデフォルト設定に従って、 SoftBank の携帯では UTF-8 で表示するようにすれば この問題は防げるはずです。
リンク
2010-08-13 (金)
■ FlashCanvas Pro 1.3 beta2 を公開しました
FlashCanvas Pro とは?
FlashCanvas は、HTML5 Canvas の機能を Internet Explorer でも使えるようにする JavaScript ライブラリです。 FlashCanvas Pro は、その高機能版です。
FlashCanvas Pro 1.3 beta1 からの変更点
- Flash Player 10.1 でも turbo mode が有効になるように変更
Flash Player 10.1.53.64 への対応
昨日の記事で書いたように、Flash Player 10.1.82.76 では、 FlashVars の値を書き換えることができないバグが修正されたようです。 ということで、そのバグが存在する Flash Player 10.1.53.64 でのみ、 turbo mode を無効にするように変更しました。
Flash Player 10.1.53.64 はセキュリティホールがあるわけですから、 そんなものを FlashCanvas の側でサポートする必要はないのですが、 しばらくの間は移行期間ということで、対策コードを入れておくことにします。
ダウンロード
2010-08-12 (木)
■ FlashVars のバグが 10.1.82.76 で修正された模様
以前、 Flash Player 10.1 (10.1.53.64) では、FlashVars の値を書き換えてもそれが Flash 側に反映されない と書きましたが、 昨日リリースされた Flash Player 10.1.82.76 を試してみたところ、 その不具合が改善されているようです。
- Adobe Forums: Flash Player 10.1 setVariable not working
- Adobe Forums: Cannot set FlashVars with Flash ActiveX...
ここら辺のフォーラムを見ていると、Adobe は本当に直す気があるのか、 と心配だったのですが、ちゃんと(というかこっそり?)直してくれたようです。
となると、FlashCanvas Pro の方でも、 FlashVars を用いたデータ転送を無効にしていたのを復活させることができるので、 FlashCanvas Pro の次のバージョンでは、その辺の調整も含めるようにします。
