Google Suggestにキーボードショートカットを付けるのがおもしろかったので作り直した
こちらのスクリプトがなかなかおもしろかったのだが、残念ながら自分の環境では変なことになってしまったので、作り直した。
サジェストの前にこんなふうに番号が付いて、Ctrl+数字を押すと、その数字のところの検索語 (句) が入力される。
実は今までGoogle Suggestはほとんど使ったことがなかったのだけど、これを作ってるうちになかなかいけると思えてきた。しばらく使ってみるかも。
googlesuggest-shortcut.user.js (横着したので.user.jsとしないとうまく動かない)
Opera 9.52で動作確認。
CSSの:nth-of-type()
を使っているので、Opera 9.2xとかFirefoxだと3.0だと (0) じゃなくて (10) になってしまうけど、0を押せばOK。(それ以前にOpera 9.2x系やFirefox 3.0で動くのか試してないけど)
// ==UserScript== // @name Google Suggest Shortcut // @author edvakf // @thanks to hiru926 // @include http://www.google.co.jp/ // @include http://www.google.com/ // ==/UserScript== (function(){ //スタイルの追加 //counterで(1)から(10)まで番号を振り、nth-of-typeで(10)を(0)に変える var style = '.gac_m{counter-reset:s;}.gac_c::before{color:#F88;content:"("counter(s)") ";counter-increment:s;}'; style += 'table.gac_m tr:nth-of-type(10) td.gac_c::before{color:#F88;content:"(0) ";}'; var e = document.createElement('style'); e.type = 'text/css'; e.innerHTML = style; document.getElementsByTagName('head')[0].appendChild(e); //検索欄を取得 var inputs = document.getElementsByTagName('input'); for (var i = 0; i < inputs.length; i++) { //input title="Google Search" か title="Google 検索" if (inputs[i].getAttribute('title')) { var searchbox = inputs[i]; } } document.addEventListener('keypress',function(event) { //サジェストが出ているときのみ実行 var suggest = document.getElementsByClassName('gac_m')[0]; if (suggest && suggest.getAttribute('style').match(/visible/)) { //keycode 48は'0', 58は'9' if (48 <= event.keyCode && event.keyCode <= 58) { if (event.ctrlKey) { //ctrl+数字が押されたら検索欄のvalueを変える event.preventDefault(); var j = event.keyCode - 49; if (j < 0) { j = 9; } searchbox.value = suggest.getElementsByClassName('gac_c')[j].innerHTML; } } } },false); })();