部分更新スクリプトでラベルのリンクがうまく取得できなかったのでちょっと調べてみた
ラベルを日本語にするとURLに日本語が含まれることになるけど
ソースを見ると既に日本語の所はURLエンコードされてる
Firefoxだと問題はないけどIEだと問題が出るようだ
最初スクリプトが間違ってたのかと思ったけど
IE系ブラウザでスクリプトでリンクのhrefを取得するとこの時点で既に文字化けしてた
いろいろ検索してみたところこんなサイトを発見
alert window への日本語表示
具体的な対処方法が載ってなかったけど
なんとなくエンコード、デコードの順番の問題かなと思った
UTF-8の日本語をURLエンコードしてるとIEではそれを変な風にデコードしてしまうって事なのかな?
今IE系のブラウザのMaxthonを使ってるけど
Bloggerの日本語ラベルリンクを真ん中クリックで他のタブで開くと
URLの最後の方が文字化けしてうまくリンクを開けない
その辺と関係がありそうだ
そういえばwikipediaとかはてなダイアリーキーワードとかも中クリックの時はうまく開けなかった気がする
次に文字化けしたURLを
[ サンプル ] _ encoder / decorder(文字列の符号化・復号化)
でエンコードしてみた
そしたらソースにあったURLと同じになった
つまり
UTF-8→URLエスケープ(元のURL)→unescape(hrefで取得したURL?)→escape=元のURL
と戻すことができたのかな
escapeするだけだと今度はFirefoxで表示した時おかしくなるのでその辺はブラウザによって処理分けする必要があるかな
OperaとかSafariとかIE7じゃどうなるかわかんないけどね
とりあえずIE6とFirefoxだけみれればいいかな
IEの時だけescapeするようにしてみたら部分更新スクリプトがうまく動くようになった!
火曜日, 11月 07, 2006
IEのhrefの文字化けによるリンク不具合の実験
月曜日, 11月 06, 2006
日曜日, 11月 05, 2006
カレンダーのリンクを部分更新にしてみる実験
カレンダーのリンクをクリックした時、
ページ全体が更新されるのではなく
記事の部分だけを更新するようにしてみた。
といっても、リンクのonclickに"Older Posts"と同じ関数を付けただけ
でも表示の切り替えが速くくて(・∀・)イイ
カレンダーに月の切り替えも付けてみたんだが
古い方の月に行くのはいいんだけど
新しい月に行く方がうまくいかない
updated-maxを指定しないで
updated-minとmax-resultsだけ指定すると
範囲は最新の記事からupdated-minで
表示される記事はその範囲の新しい記事からmax-results分となり
結局最新max-results分の記事しか表示されない…
なんかいい方法ないかな?
<script charset='Shift-JIS' src='http://tirasi.no.ura.googlepages.com/koyomi.js' type='text/javascript'/>
土曜日, 11月 04, 2006
indexページの"Newer Posts"と"Older Posts"を自前で処理する実験
indexページで"Newer Posts"と"Older Posts"をクリックした時の処理を自前の処理に差し替えてみた
自前といってもwidgetsの関数を使わせてもらってるけど…
これでページが更新されたタイミングがわかるため
部分更新でもカレンターの更新ができるようになった
目次の方はまだスクリプトに組み込んでない。
<script charset='Shift-JIS' src='http://tirasi.no.ura.googlepages.com/bloginit.js' type='text/javascript'/>
Revert widget templates to default を押してみた
EditHTMLにあるRevert widget templates to defaultを押してみた
テンプレートのwidget内を書き換えた所は元に戻ったけど
headとかはそのままだった。
昨日"Newer Posts"と"Older Posts"が日本語表示されてたような…
気のせいか…。