blog_ajax_json_search.jsファイルへの制限memo

この記事は、公開日時より1年以上経過しています。最新の情報のご確認をお願いします。

記事検索に便利なblog_ajax_search_json_search.jsなのですが、なんでかしらんけどウチとこのjsファイルがよそ様で稼動していたっぽいです。。

Compressorかけたから解読しにくいし、めんどくてそのままウチのほうからロードしてるのかもしれない。
もともと配布されているものなので、作者様か二次配布されているところから(CC2.1のようです)もってくればいいとは思うんですけどね。
その辺はまあいいんだけども。
あまりこのようなのがヒンパンにおこなわれるのもなんですんで、使用するサイトの制限をかけるようにしてみました。
jsファイルに対しサーヴァ側でリファラが自分とこ以外なら蹴るという対策もあるわけですが、ロケーションが自分とこのページでないときには関数の実行をおこなわないように改造すれば動かなくてあきらめるでないかなーという考え。

MT向けのに限っていえば(もともとはココログ向けだったり) blogAjaxJsonSearch()関数が検索メインの関数となってます。
で、この関数の実行は、Ajax.Request()の実行により検索データから検索をおこなうしくみなのでAjax.Request()が実行される前に条件式をおいておけばいいことになります。
blogAjaxJsonSearch()のはじめのほうにこれをいれておく(localhostのとこは実際は自分のところのURL)。変数は任意なんですけど今使ってるのははminimumなのでa , bとか短い変数になってる。

  • var my_site = 'http://localhost/';
  • var gt_loc=document.location.href;

つぎに変数に値を渡すとこsearch_keyword = text;の前に条件式をおく。条件が真のときのerr()関数はあとで作っておく。

  •    if (gt_loc.indexOf(my_site)!=0){ err(); }  else {

――でblogAjaxJsonSearch()関数の最後に

  • }

を追記(しとかないとスクリプトがエラーに)。
err()関数は、全体の最後にでも適当につくっておく。

function err(){
   alert('error!!');
   result_content.innerHTML="Sorry, Cannot search at This Page.";
   return undefined;
}

以上カスタマイズメモでした。 オリジナルと作者様のページは以下です。
ココログプロとかTypepadとかMTとかブログ人とかその他のブログサービスとかでもAjaxでバックナンバーを検索するJavaScript: 暴想: