Opera 選択範囲をアルクで検索する

久し振りの JavaScript
...
楽しいですねぇ〜 Opera だけでいじるのは(笑)

本題↓

英単語調べるときにアドレスバーで,
4押しでスペースアルクに接続して検索していたのですが,

4押し → (Ctrl+t) + a + スペース + (単語)

最近単語をドラッグしてコピーしてこの動作をすることが多いので,
ドラッグしたまま検索できるものを作りました↓

javascript:window.location='http://eow.alc.co.jp/'+encodeURI(document.getSelection())+'/UTF-8/';

Operaではウェブ検索と喧嘩しないため,これを a という名前でブックマークしておけば,

3押し → (Ctrl+l) + a

で検索できます.しかしこのままではそのタブに表示してしまうので,
新しいタブで開きたいときは次の方で ok です.

javascript:window.open('http://eow.alc.co.jp/'+encodeURI(document.getSelection())+'/UTF-8/');

ruby で rbuf_fill (Timeout::Error)を rescue する

ruby でこんなエラーが・・・rescue していたはずなのに・・・

...ruby/1.8/timeout.rb:60:in `rbuf_fill': execution expired (Timeout::Error)

参考サイト(元ネタ&英語)
http://lindsaar.net/2007/12/9/rbuf_filltimeout-error

調べた結果,
http://www.ruby-lang.org/ja/man/html/_C0A9B8E6B9BDC2A4.html#rescue.bd.a4.be.fe.bb.d2
には,

捕捉する例外クラスを指定することはできません。 (つまり、StandardError 例外クラスのサブクラスだけしか捕捉できません)

とある.StandardError・・・何それ?ということで
http://www.ruby-lang.org/ja/man/html/_C1C8A4DFB9FEA4DFA5AFA5E9A5B9A1BFA5E2A5B8A5E5A1BCA5EBA1BFCEE3B3B0A5AFA5E9A5B9.html#a.ce.e3.b3.b0.a5.af.a5.e9.a5.b9
にありました.

Timeout::Error は Interrupt を継承しているため,次のままでは rescue できません.

begin
  # ここに処理
rescue => ex
  puts ex.class
end

そこで次のようにします.

begin
  # ここに処理
rescue Timeout::Error => ex
  puts ex.class
end

これで rescue!!
Timeout::Errorのかわりに Interrupt と書いてもできました.

しかしこのままでは StandardError を rescue できないので,下のようにもできます.

begin
  # ここに処理
rescue => ex
  puts ex.class
rescue Timeout::Error => ex
  puts ex.class
end

これで rescue できるはずです.

Opera ゴミ箱をショートカットで再利用

最近 ctrl + w でガツガツタブを消してると、あ!やっぱあのサイトみたい!

となることがたまにある。

そんなときマウスでごみ箱をクリックして探すんだけどめんどくさいんですよね。。

id:edvakf さんが教えてくださったので次にメモります。

Application
h ctrl="show popup menu, "Closed Pages Menu""
h ctrl, 1 = Reopen page

この状態で数字を押すと消したタブを開くことができます。

使うかなぁ〜〜

Opera shift+矢印 を最初から表示する .user.js

久し振りの日記。まぁid:mallowlabs大先輩がやってくれたんですが。。

Opera で shift + 矢印 をキーボードショートカットに登録したものの・・・
意外と使いづらい。

足りないと思われる機能は次の二つかな?
1.はじめどこにフォーカスされるか不明
2.いつも画面上部から

とりあえず1をid:mallowlabsさんがやってくれたので下に載せる。

// ==UserScript==
// @name navigateRefine.js
// @author hiru926
// @version 0.1
// @include *
// ==/UserScript==

(function(){
document.moveFocusDown();
})();

これでとりあえず初期位置はわかるようになった。

まだまだ改造する必要があるなぁ〜〜〜

Google サジェストをキーボードショートカットで選択するユーザスクリプト(user javascript)

かなりめちゃくちゃですが。。

画像↓

gist.gitHub
http://gist.github.com/raw/9833/d2bd4a9d57d974296df382922004a461687fbd03?GoogleSuggest-shortcut.user.js

使い方

1.http://www.google.co.jp/webhp?complete=1&hl=ja&esrch=BetaShortcuts に行く
2.ctrl を押す。(と画像のように数字が挿入される)
3.ctrl を押しながら、1 or 2 or ... 9 or 0 を押す。(とinputに挿入される)

デメリット

1.Googleが仕様変えたら動かない
2.トップ画面で opera の Speed Dial へのショートカットが無効になる
3.ソースが汚い

いちお使えるものができた。

難しぃ〜

opera user.js に挑戦 (user.jsを置くフォルダのパスの調べ方)

Googleサジェストのドロップダウンにショートカットを追加すべく、uesr.jsの開発の練習をしてみた。

user.jsを置くフォルダのパスの調べ方

1.アドレスバーで opera:about と入力する
2.「ユーザー JavaScript ファイル」と書かれているところですね

簡単ですね。

次にソースコード
Googleの絵をYahoo!に変更する hello.user.js

// ==UserScript==
// @name Hello user javascript
// @author hiru926
// @version 0.1
// @include http://www.google.co.jp/*
// ==/UserScript==

(function(){
document.getElementsByTagName("img").item(0).src = "http://i.yimg.jp/images/mht/2008/0906_beijing_para_swi.gif";
})();
(function(){
document.getElementsByName("btnG").item(0).addEventListener("mousedown", function(){
// alert("zagin");
document.getElementsByName("btnG").item(0).disabled = false;
}, false);
})();

よし!Googleサジェストだ〜