2017年10月
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        
無料ブログはココログ

« パソコンセットアップ中 | トップページ | 下半身だけ…… »

2011.04.26

JavaScriptでMP3再生の試行錯誤の覚え書き(その3)

ひょっとするとIEでも動くかも、と期待したMP3再生JavaScriptですが、JavaScriptへ引き渡す文字列のエンコードがIEとFirefoxで異なるようです。
元々Firefox用に作成していたため、JavaScriptへ渡すファイルパス文字列を rawurlencode() にて変換して渡していたのですが、これだとIEでは文字化けしてしまうのです。
IEでは何もせずにそのままの文字列を渡さないといけないようです。

そんな訳で、ブラウザがFirefoxかどうかを判別し、Firefoxなら rawurlencode()、それ以外ならそのままの文字列をJavaScriptへの引数に設定するようにしてみました。

めんどくさいな……

ただ、この問題はhtmlをEUCで書いている事も影響しているのかもしれません。SJISやUTF-8だったら問題ないのかも。
(その後、JavaScriptに escape() という関数があることが判明。引数ではエンコード無しで渡しておいて、この関数を使うとどうにかなるのかも?、と思ってやってみましたが、だめでした)


なお、PHPには get_browser() という関数があり、ブラウザの判別にはこれが使えるのでは? と思ったのですが、browscap.ini というファイルを自前で準備しなければいけないとか、何だかよく判らないところが多かったので使いませんでした。
なので、HTTP_USER_AGENT から判断しています。


また、IEではさらに別の問題も。
いろいろ再生していると、パス名中に半角の "%" や "#" が含まれている曲の再生が出来ないということが発覚しました。
現象としては曲のロードが出来ないようですので、やはりファイルを見つけられない事が原因だと思われます。
JavaScriptへの引数として、"%" は "%25" へ、"#" は "%23" にエスケープしています。Firefoxではこれで動作しているのですが、IEだとだめなんですよね。
試しにエスケープするのを止めてみましたが、やっぱりだめでした。

とりあえずIEで使うつもりはないのでこれ以上追求するのは止めておきますが、でもちょっと引っかかりますね。

« パソコンセットアップ中 | トップページ | 下半身だけ…… »

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/39755/51495677

この記事へのトラックバック一覧です: JavaScriptでMP3再生の試行錯誤の覚え書き(その3):

« パソコンセットアップ中 | トップページ | 下半身だけ…… »

にほんブログ村

Amazon.co.jp