« カレンダースクリプト:当月バックナンバーへのリンク追加 | トップページ | 【ココログプロ】最近のコメントをRSS配信するためのテンプレート »

2006/08/18

セブンアンドワイの検索フォームをサイドバーに

みんなで解決!広場で、サイドバーに
セブンアンドワイ
への検索フォームを設置したい旨の質問があったのですが(1577.設定の仕方。)、どうも公式には検索フォームは提供されていない模様です。
念のため、カスタマーサービスに問い合わせてみたところ、
  • 現状、公式の検索フォームは用意していない。
  • セブンアンドワイのサイト上部にある検索フォームをカスタマイズして自分のサイトに設置するのは構わない。
  • 設置の際、リンク先がセブンアンドワイであることを明記のこと。
という回答が得られました。
そんなわけで、ココログのサイドバー用に検索フォームを作ってみました。
ただ単純に(アフィリエイトプログラムとは関係なく)検索フォームを設置したい、というだけであれば、例えば以下のようなHTMLをメモタイプのマイリスト等に貼り付けてサイドバーに設置すれば可能ではあるようです。
セブンアンドワイのサイト上部にある検索フォームをカスタマイズしたものです。
このサイトのサイドバー(検索きまぐれブックテーマ)内にも設置してみましたので、お試し下さい。
<script type="text/javascript">
<!-- 
function search_action(iSi)
{
    var aShozai = new Array('all', 'books', 'magazine', 'cd', 'dvd');
    if (iSi < 0) { iSi = 0; }
    return 'http://www.7andy.jp/' + aShozai[iSi] + '/search_result';
}
function search_ex(iSi)
{
    var aShozai = new Array('all', 'books', 'magazine', 'cd', 'dvd');
    if (iSi < 0) { iSi = 0; }
    return 'http://www.7andy.jp/' + aShozai[iSi] + '/search';
}
function trap_submit(fObj)
{
    if ( fObj.kword_in.value == '' ) {
        fObj.action=search_ex(form.ctgy.selectedIndex);
    }
    if ( fObj.action == '' ) {
        fObj.action = 'http://www.7andy.jp/all/search_result/' ;
    }
    if ( navigator.userAgent.match(/msie/i) ) {
        document.charset = 'euc-jp' ;
        fObj.submit() ;
        document.charset = 'utf-8' ;
        return false ;
    }
    return true ;
}
// -->
</script>
<table width="100%" cellpadding="0" cellspacing="0" border="0"><tbody>
  <tr>
    <td>
      <form method="get" action="http://www.7andy.jp/all/search_result/" onsubmit="return(trap_submit(this));" target="_blank" accept-charset="euc-jp">
        <table cellpadding="0" border="0" cellspacing="0" style="width:100%;">
          <tr>
            <td>
               <input type="hidden" name="fromKeywordSearch" value="true" />
               <input type="text" maxlength="256" name="kword_in" value="" style="width:90%;" />
            </td>
          </tr>
          <tr>
            <td>
              <select name="ctgy" onChange="this.form.action=search_action(this.selectedIndex);">
                <option value="all" selected>すべての商品</option>
                <option value="books">すべての本</option>
                <option value="magazine">すべての雑誌</option>
                <option value="cd">すべてのCD</option>
                <option value="dvd">すべてのDVD</option>
              </select>
           </td>
         </tr>
         <tr>
           <td>
             <input type="image" name="submit" src="http://www.7andy.jp/esb2004/images/b_search.gif" width="80" height="19" alt="検索" border="0" />
             <input type="hidden" name="oop" value="on" />
           </td>
         </tr>
        </table>
      </form>
    </td>
  </tr>
  <tr><td>
    <!-- Begin 7andy Link -->
      <A HREF="http://www.7andy.jp/">
      <IMG SRC="http://www.7andy.jp/esb/docs/images/7andylg2.gif" ALT="セブンアンドワイ" BORDER=0></a>
    <!-- End 7andy Link -->
  </td></tr>
</tbody></table>
以下、余談ですが。
変なところで苦労したのが、文字コードの問題。
ココログがUTF-8なのに対してセブンアンドワイはEUC-JP……そのままだと日本語で検索すると文字化けしちゃうのですね。
formタグにaccept-charset="euc-jp"を付ければいけるかな?と思えば、Firefox・Operaあたりは大丈夫っぽいけれども、IEはNG……(_ _;)/。
仕方がないので、submit() のときだけ document.charsetを書き替える、という力業を導入してしまいました。
なので、スクリプト(JavaScript)オフの環境では、IEでの日本語検索はNGです。
■修正履歴
  • 2006.09.06
    1. 検索ページが2つ開いてしまう(submitが2回実施される)不具合修正
      window.event.cancelBubble=trueは止めて、onsubmitでコールする関数の戻り値で切り分けするよう修正。

« カレンダースクリプト:当月バックナンバーへのリンク追加 | トップページ | 【ココログプロ】最近のコメントをRSS配信するためのテンプレート »

おもいつき」カテゴリの記事

コメント

夜分遅くに失礼します。
この度はほんとうに有難う御座いました。
設置させていただきましたww(タグが上にできないのですが・・・/笑)
感謝の気持ちでいっぱいです。
有難う御座いました!!

あかづきん さん、どうもです。

お役に立てたようで幸いです。
#こちらもフォームを作る上でのちょっとした小技を学習できましたし(笑)

| (タグが上にできないのですが・・・/笑)
ん?意味がよくわかりませんが……。

7&Yには脆弱性があります(した?)のでご注意を
ttp://d.hatena.ne.jp/Lucrezia/20060803

遅くなりましたが、コメントどうもです。参考にさせていただきます。

当方は幸い(?)会員登録していませんが。
#はっきりした根拠はないものの、サイトを見たときに“登録は見合わせた方がいい”とゴーストが囁いたので(w

コメントを書く

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: セブンアンドワイの検索フォームをサイドバーに:

« カレンダースクリプト:当月バックナンバーへのリンク追加 | トップページ | 【ココログプロ】最近のコメントをRSS配信するためのテンプレート »

戻るリンク追加

カレンダー

2019年9月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30          

ココログカレンダーPlus

検索


    • Web全体 サイト内
    • 蔵書のISBNを入力して下さい
    • はじめる前
      初級者向け
      上級者向け
      ブログ紹介
      結果を表示

最近のトラックバック

コメントリストツリー化

無料ブログはココログ