血統の森+はてな

旧はてなダイアリーの自動インポートによるアーカイブです。

Opera内部アクション、というかコンテキストメニューを触る

OperaOpera的な意味でメジャーバージョンアップするたびに様々な挙動が不審変更されるのは今になって始まったことではないのですが、Operaコンテキストメニューに関する謎、というか力業で解決した問題があったり。

Opera内部アクションでOpera_ex風を実行すると、画面にnullが返ってくる

id:edvakfさんの

JavaScript+内部アクションでopera_exのようなことができないものか - by edvakf in hatena
http://d.hatena.ne.jp/edvakf/20071225/1198560414
opera_exを使わないでコピー強化ver.2 - by edvakf in hatena
http://d.hatena.ne.jp/edvakf/20080109/1199834937

あたりを参考にして、Opera_ex風にコピペするのを[Hotclick Popup Menu]セクションに仕込んでいるのですが、

Item, "ついったーでみてる" = Go to page, "javascript:window.prompt('','browsing: '+document.title+' '+location.href);" & Delay, 100 & Copy & Cancel

これで動かすと、OperaのJSのダイアログが一瞬出てきた後に、下のスクリーンショットみたいに画面にnullが返ってくるという話。

ただし、クリップボードにはしっかりとコピペしたい文字列は格納されている。

browsing: opera_exを使わないでコピー強化ver.2 - by edvakf in hatena http://d.hatena.ne.jp/edvakf/20080109/1199834937

「戻る」を押せば元の画面に戻れるので、

Item, "ついったーでみてる" = Go to page, "javascript:window.prompt('','browsing: '+document.title+' '+location.href);" & Delay, 100 & Copy & Cancel & Delay, 100 & Back

とか、いかにもそのまんまの記述をして無理やり元の画面に遷移させているけど、もうちょっとスマートな解決策はないものですか…orz

いつの間にかパーセントエンコーディングの扱いが変わっていた

[Document Popup Menu]のセクションにはてな記法一覧を仕込んでいるのだけど、

Item, "はてな記法一覧を開く" = New page & Go to page, "http://hatenadiary.g.hatena.ne.jp/keyword/%e3%81%af%e3%81%a6%e3%81%aa%e8%a8%98%e6%b3%95%e4%b8%80%e8%a6%a7"

とそのまま書くと、
http://hatenadiary.g.hatena.ne.jp/keyword/31f31631a888635480867
と、わけのわからないURLにデコードされてしまう。
どうも%%としてエスケープしないといけないらしく、

Item, "はてな記法一覧を開く" = New page & Go to page, "http://hatenadiary.g.hatena.ne.jp/keyword/%%E3%%81%%AF%%E3%%81%%A6%%E3%%81%%AA%%E8%%A8%%98%%E6%%B3%%95%%E4%%B8%%80%%E8%%A6%%A7"

とすることで、正しいURLに飛んでくれるようになった。

余談だけど、私的 Opera まとめページOpera Wikiの情報がちょっと古くなってしまっているのは残念。