miau's blog?

PCサイトビューア

前も書いたけど、京ぽんに載ってる Opera と W21CA とかに載ってる Opera(PCサイトビューア)は別物なわけで。

W21CA テンプレ貼り人のチラシの裏:W21CA vs 京ぽん ブラウザ比較 - livedoor Blog(ブログ)

こんな感じでまぁ色々と問題はあるんですが、bookmarklet 使えば JavaScript でのプログラミングが携帯で楽しめるわけで。
購入からしばらく使い倒してみましたので、そのへんのお話。




いつでもどこでも JavaScript で遊びたい放題!ということで。
引っ越してからは通勤時間が短くなってしまって(片道8〜10分)本を読むほどでもないから、毎日ちまちま bookmarklet を書いてました。
会社の廊下歩いているときもメール送っているように見えて実は bookmarklet 書いてたりとか、まあハマりすぎってくらいハマって。そろそろ成果発表でもしようかなと。


でも検索してみると、よくまとまってるページがあるわけで。

Bookmarklets for W21CAII

やっぱり window.prompt を使った Google の検索とか、作ってる人いるんですね。
今後書くこともちゃんと探せば誰かがまとめてくれてるんじゃないかと思いますが、折角なので Tips っぽくまとめてみます。


URLエスケープ

Bookmarklet - ブックマークレットを作成する際のポイント

には「Operaは、スクリプト内でURLエスケープが使えない」って書いてるけど、そうでもないみたい。

そんなわけで bookmarklet で「%」を入力するには「%25」とか入れればOK。
記号の一覧に「¥」があるけど、これは U+005C の Reverse Solidus じゃなくて U+00A5 の Yen Sign だったりするので、これも%5c みたいな感じで入力可。


記号の入力

面倒です。非常に。
とりあえず Useful Sentences(定型文)に色々登録して使ってます。

document
javascript:
function(){}
javascript:(function(){})()
for(var i=0;i<a.length;i++){a[i]}
var m='';for(var a in ){m+=a+':'+[a]+'%5cn'}

顔文字も全部記号に置き換えてしまおうか、なんてことを企んでますが、まだそこまではやってません。


お気に入りのコピーとか

お気に入りの新規追加とか移動とかはできるけど、コピーができない。
短い bookmarklet ならクリップボード経由でコピーすればいいけど、クリップボードに収まらないくらい大きな bookmarklet だと何何回かに分けてコピーしないといけないから結構面倒。

こういう場合は、コピー元の bookmarklet の末尾に「;''」とかつけたら楽かなとか。
例えば

みたいな bookmarklet をコピーしたい場合は、

こんな感じに変更して、一旦これを実行。
そうしたら URL がこの bookmarklet になる(javascript 経由で document が作られた場合はそれが window.location になるっぽい)ので、お気に入りに追加すればコピーっぽい操作が完了と。
末尾につけた「;''」を外すのをお忘れなく。


お気に入りの登録とか

bookmark を色々追加する上で「リンク先をお気に入りに追加」みたいな機能があればいいんだけど、どうもそういう機能はないみたい。ということで、さらに上記を応用(?)して登録しやすい bookmarklet の作り方を考えてみました。

こんな感じの URL にリンクを貼っておくと、タイトルが「windowメンバ表示」で内容が「bookmark this page!」という画面が表示される。URL末尾に「;'<title>〜」というゴミが入るからこれを除去する必要はあるんだけど、個人的には textarea や window.prompt からコピペするよりもよっぽど楽なのでこちらのほうが好き。


ログイン支援

PCサイトビューアを使う上で一番困ったのは、ログインIDとパスワードを記憶してくれないこと。
毎回メールアドレスやらパスワードやら入れてられるかと。

そんなわけで作ってみました。ログイン支援 bookmarklet。

フォーム入力支援
※PCサイトビューア用(W41CA で動作確認済)
 IE で実行すると無限ループに陥るみたいです・・・。

上に書いた方法で URL 記述しています。遷移後の画面をお気に入りに追加して、末尾の「;'<title>」以降を削ってやってください。
使い方としては、

(1) ログインフォームを表示
(2) フォームに記憶したい文字列を入れて、bookmarklet 実行
(3) 「bookmark this page!」と表示されるはずなので、このページをお気に入りに追加。末尾の「;'<title>」以降を削除。

みたいな感じでいけるかと。

ソースはこんな感じ。

escape() やら encodeURI() やらはエスケープしない文字もあるみたい(参考にしたページ→JavaScriptにおけるURLエンコードの処理
)なので、URLエンコード用関数を自前で実装してます。
bookmarklet を見たときにパスワード欄が 'password' となっているよりも '%70%61%73%73%77%6f%72%64' になっているほうが安心なので。
ちなみに、日本語で正しく動作するかはわかりません。

bookmarklet 内部でフォームの submit() も行っているので、フォームの action もあらかじめ bookmarklet の内容に書き換えたりもしています。もっとスマートな方法がありそうな気も。何かアドバイス等あれば教えて下さい>皆様

PCサイトビューア用のものを IE で実行すると無限ループになるみたいなので、IE でも使えそうな初期バージョン(window.prompt()使用)を置いておきます。
フォーム入力支援(IE用)


その他気になっていること

・大きめの HTML を読もうとすると、最後まで読めずに終わることがたまにあるっぽい。

・bookmarklet の最大文字数ってどれくらいなんだろう?
 どれくらい大規模な JavaScript が作れるか、ちょっと楽しみだったり。

・CA Cert の証明書を使っているサーバに接続すると、PCサイトビューアが落ちるっぽい。
 結構困るので早くなんとかして欲しい。
posted at 06:32:48 on 2006-06-28 by miau - Category: W41CA No Trackbacks - Permalink

TrackBack

このエントリにトラックバックはありません
現在トラックバックは受け付けていません。

Comments

No comments yet

Add Comments

現在コメントは受け付けていません。
お手数ですが、 こちら のコメント欄にでも記載していただければと思います。