Googleの検索結果にサイト内検索ボックスを追加するScript
Googleに第2検索ボックス登場 をみて、さくっと書いてみた。
http://ss-o.net/userjs/googleinsitesearchbox.user.js
Opera9,Firefox2/3,Safari3で動作すると思います。AutoPagerize対応。
// ==UserScript== // @name GoogleInsiteSearchBox // @namespace http://ss-o.net/ // @include http://www.google.co.jp/search* // @include http://www.google.com/search* // ==/UserScript== (function(){ var q = document.getElementsByName('q')[0]; if(!q || q.value.match(/site:/)) return; var f = function(nodes){ for (var i = 0,l = nodes.length;i<l;i++) { var node = nodes[i]; var sites = document.evaluate('.//span[@class="a"]',node,null,XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,null); for (var j=0,len=sites.snapshotLength;j<len;j++){ var site = sites.snapshotItem(j); var host = site.textContent.replace(/([^\/]*)\/\/?([^\/]*).*/,'$1'); if (host == 'https:') host = RegExp.$2 var div = document.createElement('div'); div.innerHTML = [ '<form name=gs method=GET onsubmit="this.q.value+=\' site:' + host + '\';return true;" action=/search>', '<input type=text name=q size=41 maxlength=2048 value="" title="Search '+host+'">', '<input type=submit name="btnG" value="Search '+host+'">', '</form>' ].join(''); site.parentNode.appendChild(div); } } } f([document]); setTimeout(function(){ if(window.AutoPagerize && AutoPagerize.addFilter) AutoPagerize.addFilter(f); },0) })();
こんな感じ
追記:この画像見たらhttpsのときに失敗してるのに気が付いたので修正した