こんにちわ。 世間はすっかり秋ですね。
僕は最近何故かヘトヘトです。
美味しいものでも食べて元気になりたいんですが、 そんなに収入もお金も無いので贅沢するのが怖い毎日です。
さて、さて、本題に入ります。
Javascriptはdocument.referrerを呼び出すことによって、 トラブルは突然やって来ました。 行わせていた処理はとても単純なもので、 最初はJsの書き方に問題があるのかと思っていたのですが、 まさか、と思いdocument.referrerで値を確認してみました。 で文字コードを調べてみました。 Firefox5はUTF-8でエンコードされたのではなく、SJISでエンコードされていました。document.referrer
ユーザが前に見ていたサイトの情報を呼び出すことができます。
これによって、前に見ていたのがWebの情報だったら、
web関連の記事の情報をサイドバーに出したり…
といった処理を行うことが可能になります。Firefoxでうまく動いていない…
document.referrerを変数に代入→decodeURIでデコード
特定の日本語、"素敵やん"、"引退" などが含まれていたら要素を変える
といったものでした。Jsの書き方が問題では無かった
Firefoxの3.6、6では問題なく動いていたので、
コンソールを見てみると、『URIError』というエラーが表示されていました。文字コードが違う
ん…クエリは同じになるはずなのになぜか違っていました。
なので、こちら結果
decodeURIはUTF-8ではないバイト列をエンコードしたものはデコードできません。
なので、とりあえずSJISでエンコードしたものも変数に入れて、
条件に追加してあげることで対応しました。
サイトがShift-JISだったのでそれも関係しているのかと思いましたが、
別なサイトでも同様の結果でした。