Google AJAX Searchでブログタイトル自動検索
Google AJAX Search はブログのサイドバーモジュールとして使うのがきっと正しい。ただ、訪れた人がただのGoogle検索ボックスに入力してくれるとは思えない。
そこで、ブログのタイトルをキーワードとして自動検索させればよいのではないかと思って、作ってみた。見た目にはちょっとしたAdSenseっぽくなる。広告料は入らないけど。
コードはこちら。
<!-- load google scripts --> <script src="http://maps.google.com/maps?file=api&v=2&key=abcdefg" type="text/javascript" charset="utf-8"></script> <script src="http://www.google.com/uds/api?file=uds.js&v=0.1&key=abcdefg" type="text/javascript" charset="utf-8"></script> <!-- overriding style sheet --> <style type="text/css"> @import url('http://www.google.com/uds/css/gsearch.css'); .gsc-control { width: 180px; } .gsc-result .gs-title { overflow: hidden; } </style> <!-- drawing area --> <input id="searchInput" type="text" style="display:none" /> <div id="searchControl" align="left"></div> <!-- drawing script --> <script type="text/javascript"> // fix charset of the including javascript document.origCreateElement = document.createElement; document.createElement = function(name) { var e = document.origCreateElement(name); if (e.tagName.toUpperCase()=='SCRIPT') { e.charset='utf-8'; } return e; } // modify these parameters var titlePrefix = 'foobar's blog:'; // Prefix of the article title var titlePostfix = ' - blog hosting site name'; // Postfix of the article title // Create a search control var searchControl = new GSearchControl(); var options = new GsearcherOptions(); options.setExpandMode(GSearchControl.EXPAND_MODE_CLOSED); searchControl.addSearcher(new GwebSearch()); var localsearch = new GlocalSearch(); if (typeof GPoint!='undefined') { localsearch.setCenterPoint(new GPoint(139.70055,35.689326)); // Shinjuku searchControl.addSearcher(localsearch, options); } searchControl.addSearcher(new GvideoSearch(), options); searchControl.addSearcher(new GblogSearch(), options); // Tell the searcher to draw itself and tell it where to attach var searchInput = document.getElementById('searchInput'); var drawOptions = new GdrawOptions(); drawOptions.setInput(searchInput); var searchDiv = document.getElementById('searchControl'); searchControl.draw(searchDiv, drawOptions); var title = document.title; title = title.substring(titlePrefix.length, title.length-titlePostfix.length); searchInput.value = title; // Execute blog title search if (title && title.length>0) { searchControl.execute(title); } </script>
キーワード入力ボックスは見えないように設定しているけど、まあお好みで。