Firefoxでectoizeが使えた!

投稿日: カテゴリー タグ

以前のエントリで書いたとおり,ectoを使ってます。で,ectoizeを使ってる(というか,使おうといろいろ試している)のですが,firefoxでは文字化けして使えないことに困っていました。
javascriptなんで,文字コードの扱いがおかしいのかなぁとは漠然と予測していたのですが,なにをどうしていいやらわからずにおりました。

で,今日ぼんやり「もしかしたら」と思って検索したら。。。。

  • cha-ki-sho – b2evolution 0.9.0.10 の日本語対応

ブックマークレット

ブックマークレットの問題は、ブックマークレットのJavaScriptで escape() が用いられていることが原因です。encodeURIComponent() を使用するように変更します。(欧文のみの環境ですと、escape() のほうが問題が少ないようです。しかし日本語等、UTF-8を使用する場合では encodeURIComponent() のほうが無難です)

「むむむっ,これはもしかしたら」,とおもって,ectoizeのスクリプトを確認してみると。あるではないですか,escape!!!
「これだっ」と,さっそく変更してみると,きちんとうごきました。

変更後のスクリプトは

javascript: var baseUrl = 'ecto:'; var url = baseUrl;var title = document.title; url = url + 'title=' + encodeURIComponent (title); var currentUrl = document.location.href; url = url + '&url=' + encodeURIComponent (currentUrl); var selectedText; selectedText = getSelection (); if (selectedText != '') url = url + '&text=' + encodeURIComponent (selectedText);document.location.href=url;a

なるほど,他も検索してみると

  • JavaScriptで得た情報をCGIへ

#escape()を用いるのが一般的と思われるが、escape()はRFC2396非準拠で
#おかしなURLになるため、あえて使用しなかった。

なんて,記述もある。
JavaScript自体はほとんど解ってませんが,まぁ,動いたからよしとしておきましょう。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください