いしなお!
2005-02-19 [長年日記]
_ [MM] AirH" Phoneからの位置情報メモ (00:37)
AirH" Phone(動作確認済みなのは、AH-K3001Vのみ)からの位置情報メモの投稿機能を用意しました。
AirH" Phoneから1470.net 位置情報APIにアクセスすると、AirH" Phone用というリンクがあるので、それをクリックしてください。位置情報を取得してよいか聞かれ、はいを選ぶと位置情報を取得します。
取得結果ページには、MMへのメモ登録リンク、Yahoo! Mapの該当位置へのリンクが表示されるので、MMへのメモ登録を選択してください。TypeKey認証が行われたあと、登録フォームへと遷移します。
なおAH-K3001Vにおいては、位置情報精度対決! AH-K3001V v.s. AH-J3002V!によれば、AirH" Phone用をブックマークしておき、パケット通信が切断された状態から直接上記ブックマークを開くことで、精度の高い位置情報が取得できるそうです。ただし、試してみた限りでは200メートル程度の誤差は出るようですが。
ちなみにMM自体はまだ携帯端末対応を全然やっていないので、Operaが使えるAirH" Phoneといえどもあまり使い勝手は良くありません。そのうち徐々に携帯電話での使い勝手も向上させていきます。
_ [日常] 風邪をひいたくさい (02:10)
今日の夜は天気予報通り雪が降っていて、昼間の好天と比べてちょっとびっくりしたわけだけど、雪で濡れたせいか家に着いたら猛烈に頭が痛くなってきた。風邪かな。それとも会社でもついに罹患者が出たインフルエンザの方か。
_ [MM] URL検索を追加 (14:26)
MMに登録されているURLを検索する機能を追加しました。
- URL検索 - http://1470.net/mm/searchurl
この日記に関するURLを検索したい場合は、
なんて感じで使います。現在表示しているページをこの機能を使って検索するbookmarkletは、
javascript:document.location.href= 'http://1470.net/mm/searchurl?url='+ escape(document.location.href);
なんて感じです。
_ [MM] URLを利用した関連情報表示に対応しました (15:39)
従来は、あるメモに関する情報を表示する際には、
という形でメモの内部IDを使った指定方法しかできませんでしたが、新しく、
という形での関連情報表示に対応しました。上記のような指定をした場合、そのURLについて最初に登録されたメモに関連する情報が表示されます。もしもそのURLに関するメモが存在しない場合は、そのURLに関するメモを登録するフォームが開きます。
この機能を使って、現在表示しているページのMMにおける関連情報を呼び出すbookmarkletは、
javascript:document.location.href= 'http://1470.net/mm/related?url='+ escape(document.location.href);
なんて感じになります。
_ [MM] JavaScriptで選択した文章を投稿フォームに渡す (16:53)
このあたりで実験されている例のアレですが、JavaScriptで非ASCIIなテキストをescapeとかencodeURIComponentすると、Unicodeとしてエンコードされて%uxxxxとか&#nnnn;とかになるっぽいですね。
で、PHPのurldecodeは文字コードは環境依存の%xx形式しかデコードできない(けど、どちらかというと現状ではこちらの方が標準的な処理だよね)んで、JavaScriptでエンコードされた文字列をデコードするには、それ専用のロジックを追加しなければならないようです。
が、基本的にmemo_form.htmlに渡される引数は、一般的なCGI同士の連携で使えるようにするのが主なので、あまり非標準的な動きはさせたくありません。現状私はこの件に関する知識が足りていないため、JavaScriptから渡されたパラメータのデコードに中途半端に対応すると、なんとなくろくなことにならない気がします。
ということで、ひとまずは上記のような形式でJavaScriptでエンコードされた文字列のデコードには対応しないことにします。ただ、各パラメータで文字コードの自動認識に対応したので、ひとまず
なんてbookmarkletを使うと、運が良ければ選択した部分がメモ本文として渡されます。けど、選択部分の内容によってはうまく渡されなかったり(文字欠け)、あるいはうまく文字コードが認識できなかったり(文字化け)することがありますので、まあちょっと便利な場合もあるよね、程度にしか使えませんが。
jounoさんのところで紹介されていたところをながめてみたところ
一番手軽でそれなりの結果が得られる方法としては、encodeURI関数を使ってエンコードする方法っぽいので、それに変えてみた。
2つ目の例、typoです<br>s/realted/related/
ありがとうございます。直しておきました。