■ ココログ用全文検索をココログに設置
お好みで設置用HTML欄(テキストエリア内)のオプションを変更してから登録することもできます。
2019年03月のココログリニューアルに伴い、ブログパーツとしての登録ができなくなってしまいました。
お手数ですが、こちらの記事などを参考に、マイリストを作成して上記の設置用HTMLを貼り付けた後、サイドバーに設置してお使い下さい。
■ お試し用ブックマークレット
検索ボックスがついていないココログ(ブログ)でも、検索できるようにするブックマークレットです。
ご自分のココログで上記のブックマークレットを試してみて、うまく動かないようであれば、残念ながら対応していないということになります(コメントでご報告いただければ、可能な範囲で調査いたします)。
■ 対応した(つもりの)オリジナル(2015/09/01現在)の既知の不具合と改善点
- テンプレートによっては検索結果が表示されない/サイドバーに表示されてしまう(オリジナルテーマで、一列構成や二列・右サイドバー構成の場合等)。
- 本文中にSCRIPT要素やSTYLE要素、コメント(<!-- ~ -->)などがある場合、それらの中の文字列もひっかかってしまう。
- まれにうまく記事の内容が取得できないことがある(リッチテンプレートで、フッタに permalink が設定されていない場合等)。
- TEXTAREA内の要素もハイライト対象となってしまうため、内容が書き換えられてしまう。
- オリジナルテーマにて、記事中にIMG要素がある場合、バックナンバー読み込み中に画像も無駄に取得されてしまう。
- 特定の文字(半角数字一文字等)で検索するとエラーが発生する。
- 検索ボックスが下の方に設置されているブログだと、二回目以降の検索が面倒(またその場所までスクロールする必要がある)→検索結果上部にも検索ボックスを設けることで対応。
■ 経緯
つい先日、このブログ中に貼り付けてあるツイッターのツイートが、なぜか突然表示されなくなってしまいました。
サイドバー等に設置してあるスクリプトを外すと表示されるようになったため、ひとつずつ試していくと、どうやら使用していた prototype.js が干渉しているらしいことがわかりました。
prototype.js のリンク先をなおゆきさんのブログ上のものに変更することで問題は解消できたのですが、せっかくだし(?)、前から気になっていた不具合解消のため& JavaScript(jQuery)の勉強のためにも、いちから作り直してみるか、と思い立ったのでした。
■ ココログプロ(上級者向けテンプレート)用
というわけで、ココログプロとかTypepadとかMTとかブログ人とかその他のブログサービスとかでもAjaxでバックナンバーを検索するJavaScript: 暴想を jQuery を使用して移植したものはこちら。
【設置用スクリプト】
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="https://furyu.tea-nifty.com/script/jq-highlight.js"></script>
<script src="https://furyu.tea-nifty.com/script/jq-blog_ajax_js_search.js"></script>
<script>
window.blog_ajax_js_search_options = {
color : '#ffcc33'
, truncation_length : 80
, entry_per_page : 20
, display_search_form : true
, look_ahead : true
, search_box_id : 'search_box'
, search_credit_id : 'search_credit'
};
</script>
<form onsubmit="blogAjaxJsSearch( jQuery('#'+blog_ajax_js_search_options.search_box_id).val() ); return false">
<input type="search" id="search_box" name="search_box" value="" results="5" autosave="tangerine" placeholder="検索語を入力" />
<input type="submit" value="検索" />
<span id="search_credit" style="font-size: xx-small; margin-left: 4px;"></span>
</form>
【テンプレート(インデックステンプレート)】
- テンプレート名: Archive Search Data
- 出力ファイル: search_data.txt
- テンプレートの内容
<?xml version="1.0" encoding="utf8"?>
{
data:[
<MTEntries all="1">{
title:"<$MTEntryTitle remove_html="1" encode_js="1"$>"
,link:"<$MTEntryLink$>"
,body:"<$MTEntryBody remove_html="1" encode_js="1"$><$MTEntryMore remove_html="1" encode_js="1"$>[<$MTEntryKeywords remove_html="1" encode_js="1"$>]<MTComments>【<$MTCommentAuthor remove_html="1" encode_js="1"$>】<$MTCommentBody remove_html="1" encode_js="1"$></MTComments>"
},</MTEntries>
{title:"",link:"",body:""}
]
}