OperaMobile+UserJavaScriptで、「あとで読む」が有る程度使えた♪

メールでブックマークできる無料サービス「あとで読む」。非常に便利なサービスですが、W-ZERO3OperaNetFrontIEでは、登録するためのブックマークレットが動作してくれません。
ついでに、私が使っているRSSリーダーFreshReaderにサイト追加するブックマークレットも動作せず。。

ならば、W-ZERO3Operaでは、UserJavaScriptが(非サポートかもしれませんが)一応使えますので、それでできないか?と試したら、それなりに動きました〜\(^^)/。
他の方がそのまま使える内容ではないのですが、ネタ振りの意味を込めて、少し自分で試した際のことを書いてみます。


OperaのUserJavaScriptとは、ページを読み込んだ後に、任意のJavaScriptを実行できる機能です。PC版のOperaをお使いの方なら、使っている方も多いのではないかと思います。

W-ZERO3Opera MobileでUserJavaScriptを使う方法については、ノヴム・オペラヌムのWatanabeさんが紹介されていますので、そちらを参照してください。昨年末の記事ですが、今でも同じように設定すれば問題なくUserJavaScriptを導入できます。

Opera for W-ZERO3でUser JavaScriptを利用する - ノヴム・オペラヌム

で、私がイメージしたのは、「あとで読む」登録スクリプトを実行するリンクを、ページ内に固定して表示すること。そしてFreshReaderにサイト追加するスクリプトや、アンテナ追加やブックマーク追加等のはてな関係のスクリプトも入れてしまうこと。
私自身は、まともにJavaScriptを書いたことなどありませんので(^-^A;、いつも巡回させて頂いている「パソコン遊戯」のNoriyaさんがOpera関係のまとめページで公開されている、「HatenaTraveler.js」をベースに、ぐちゃぐちゃと自分専用のUserJavaScriptを作ってみました。
中身を自分で適宜編集しないと使えない代物ですし、加えて失笑するようなしょぼいコードですので、公開するようなものではないのですが、あくまでネタとして・・。別館で公開しています。

W-ZERO3 ツールMEMO 別館 - その他

mymenu_hatenaonly.jsは、FreshReaderやあとで読むの部分をカットして、はてな関係のみ残したもの(はてなIDの編集は必要)。一応は他の人が使えるかも知れない物も・・という些細な悪あがきです(^^;

mymenu.jsで「あとで読む」を実行する関数は、単に登録ブックマークレットの内容をそのまま命令単位に行を分けてfunction atodeの中で記述したものです。可変と思われるID部分を引数にしてあります。画面上に固定で表示したリンクをタップした際に、この関数を呼び出す、という形でやってみました。こんな感じです。

function MyMenu(){

(中略)

	//あとで読む に送信
	line1 += '<a href="javascript:atode(\'' + atodeid + '\');" style="' + styleA + '">Ato</a>';

(中略)

	bar.innerHTML = line1 + line2;
	document.body.appendChild(bar);

}

//「あとで読む」に送信
function atode(atodeid){

	var s = document.createElement('script');
	s.charset = 'UTF-8';
	s.language = 'javascript';
	s.type = 'text/javascript';
	var d = new Date;
	s.src = 'http://atode.cc/bjs.php?s=' + atodeid + '&d=' + d.getMilliseconds();
	document.body.appendChild(s);
}

同様に、FreshReaderにサイト追加する関数も実行しています。はてなアンテナやブックマーク追加は、単にURIべた書きでリンクを貼るようにしています。


以下、このmymenu.jsを、UserJavScriptとしてW-ZERO3のOperaMobileに導入し、実際に使った際のイメージです。まずはてな以外のページの場合。

下側に、「FR | AFR | Ato | A | A+ | B | B+」とならんだ細いバーがありますが、これがmymenu.jsで追加された部分。
「FR」をタップすると、自分のFreshReaderサーバーを開く。「AFR」で今見ているサイトをFreshReaderに追加。
「Ato」をタップすると、今見ているページを「あとで読む」に送信。
「A」が自分のはてなアンテナ。「A+」は見ているページを自分のはてなアンテナに追加。「B」が自分のはてなブックマーク。「B+」が見ているページをはてなブックマークに追加。
という感じです。画面をスクロールさせても、固定でこのバーは表示されます。カーソルキーではフォーカスを当てられないので(当てられてもページ閲覧上困るし(^^;)、タップ操作が必要になりますが、一発でできると便利かな、というものを色々並べてみた次第です。
ちなみに、これで「あとで読む」を実行したところ、届いたメールを見てみると、ページの一部のみ、とか一部文字化けしたりすることがありました。得られる結果としては今一歩な所があったのですが(ブラウザに依存するのでしょうね・・)、それなりに使えそうです。とにかく、ようやく「あとで読む」がW-ZERO3で使えた!というのが結構うれしかったです。
ちなみに、ZERO3のOperaデフォルトのホームページでは、なぜかリンクが縦に並んじゃいます(汗。とりあえず実験程度の話なので、放置。。


つぎに、はてなのページを開いた場合。この例は、id:kzouさんのはてなダイアリーです(^^;

はてなページの場合のみ、画面下バーの下段に、まず現在表示しているはてなページのid(この例の場合はkzouさん)が表示されます。
その右にある「A」「B」「D」「F」「R」をタップすると、kzouさんのアンテナ、ブックマーク、ダイアリー、フォトライフRSSリーダーが表示されます。現在ダイアリーを開いている場合は、その右側に「about」「archive」等を表示。アンテナなら「default」「detail」等を表示。
この辺りは、元ネタのHatenaTraveler.jsから、そのまま自分の必要なところだけパクらせて頂いているだけのものです(^^;。ページ上にそのままリンクが有る場合は特に使わないものですが。。


今回ショボイながらも試してみて、OperaMobileも、UserJavaScriptを活用すれば、もっと幅が広がるんじゃないか、と改めて実感しました。
他にも、例えば今回ベースにさせていただいたNoriyaさんのOperaまとめページにある、「NoRedirect_HatenaAntenna.js」(はてなアンテナ のリンクに設定されるリダイレクト(http://a.hatena.ne.jp/go? と 末尾の数字)を回避する)とかもOperaMobileで使えました。他にも広告消しのUserJavaScript等ありますが、UserJavaScriptはページ読込み後の実行なので、転送量削減目的での広告消しは意味がなさそうです(^-^A;。ノヴム・オペラヌムのページでも、色々と紹介されてます。
ただし、ZERO3のOperaMobileで全てのUserJavaScriptが動作するわけではありませんので、そこは注意する必要があります。
(あと、UserJavaScriptとは関係ないですが、Noriyaさんが公開されている、はてなダイアリー・アンテナ自動ログイン用HTMLは、はてなユーザーの方には重宝すると思います。)


便利なUserJavaScriptが充実してくれば、OperaMobileはずっと便利なブラウザになるんじゃないか、とはずっと思ってまして。。でも、W-ZERO3+OperaMobileでのUserJavaScript活用について紹介されている方はまだ少数。カスタマイズといえばopera.iniを変えること・・・だけでは、ちょっと勿体ない。。と思いません?(^^;
ということで、W-ZERO3Opera用の便利なUserJavaScriptが沢山出てくれるといいな〜という願いを込めた、一般的には役に立たないエントリーでした(^-^A;;


本当はes発売前にUPする予定のエントリーでしたが、延び延びに。。orz