PING送信プラス by SEO対策

js jQuery

2010年6月3日木曜日

検索サイトから来た時は検索キーワードを「このブログを検索」に追加する

さすがに常時表示はうざいので、「このブログを検索」に
デフォルトでセットしてあげるくらいにしとく。



bloggerでlivedoorブログに行くと右上あたりに表示されるアレを作る


いつものようにjQueryを使ってるので、bloggerでjQueryを使えるようにする
を参考に、インクルードしとく。
下のコードよりも先に読み込まれるように差し込むこと。

Bloggerのカスタマイズ→ガジェットの追加→HTML/Javascript
に↓のコードを貼り付ける。
  1. <script type="text/javascript"><!--  
  2. jQuery(function($){  
  3.  if ($("#CustomSearch1_form").length == 0) return false;  
  4.   
  5.  var ref = document.referrer;  
  6.  if (ref == ""return false;  
  7.   
  8.  var ref1 = ref.split("?");  
  9.  if (ref.length < 2 ) return false;  
  10.   
  11.   
  12.  var targetparam = "";  
  13.  var tmp = ref1[0].match(/http:\/\/.[^\.]*\.([^\.]*).*/);  
  14.  if (!tmp[1]) return false;  
  15.   
  16.  switch (tmp[1]){  
  17.   case "google":  
  18.    targetname = "q";  
  19.    break;  
  20.   case "yahoo":  
  21.    targetname = "p";  
  22.    break;  
  23.   case "bing":  
  24.    targetname = "q";  
  25.    break;  
  26.   //他の検索エンジンの検索文字列を取得したい場合はここに追加  
  27.   default:  
  28.    return false;  
  29.   
  30.  }  
  31.  var params = ref1[1].split("&");  
  32.  var re = new RegExp("^" + targetname + "=");  
  33.  for (var i=0;i<params.length;i++){  
  34.   if (params[i].match(re)){  
  35.    var q = params[i].split("=")[1];  
  36.    q = q.replace(/\+/g," ");  
  37.    q = unescape(q);  
  38.      
  39.    var interval =setInterval(function(){  
  40.     if ($(":text.gsc-input").length > 0 ){  
  41.      $(":text.gsc-input").val(q);  
  42.      clearInterval(interval);  
  43.     }  
  44.    },200)  
  45.      
  46.    return false;  
  47.   }  
  48.  }  
  49. })  
  50. --></script>  

googleとyahooとbingだけで十分だと思う。
他の検索サイトかポータルから来た場合も表示させたい場合は、
上のコードの
//他の検索エンジンの検索文字列を取得したい場合はここに追加
の下に、キーワードがセットされるパラメータ名を入れれば
なんとかなるでしょう。

何か問題があれば、下のコメントまで。

0 件のコメント:

コメントを投稿