その7

実際動いているサイトはこちら

plaza.jsの解説(続き)

 今回は、初期処理を行うファンクションについて説明します。

初期処理。
function init(e) {
    localTimerId = false;
    Keywords     = "";
    Sort         = "";

    Amazon       = false;
    Rakuten      = false;
    Bidders      = false;
    Storemix     = false;

    SearchIndex  = "";
    Genre        = "";
    Categ        = "";

    KeywordsText           = document.getElementById('Keywords');

    SortBestsellingCheck   = document.getElementById('SortBestselling');
    SortNewestCheck        = document.getElementById('SortNewest');
    SortLowPriceCheck      = document.getElementById('SortLowPrice');
    SortHighPriceCheck     = document.getElementById('SortHighPrice');

    AmazonCheck            = document.getElementById('Amazon');
    RakutenCheck           = document.getElementById('Rakuten');
    BiddersCheck           = document.getElementById('Bidders');
    StoremixCheck          = document.getElementById('Storemix');

    SearchIndexCombo       = document.getElementById('SearchIndex');
    GenreCombo             = document.getElementById('Genre');
    CategCombo             = document.getElementById('Categ');

    ShopName               = new Array();
    ShopName["amazon"]     = "アマゾン";
    ShopName["rakuten"]    = "楽天";
    ShopName["bidders"]    = "ビッダーズ";
    ShopName["storemix"]   = "ストアミックス";

    InfoDiv                = new Array();
    ResultsDiv             = new Array();
    BookmarksDiv           = new Array();
    ErrorDiv               = new Array();

    for(shop in ShopName) {
        InfoDiv[shop]      = document.getElementById(shop + 'info');
        ResultsDiv[shop]   = document.getElementById(shop + 'results');
        BookmarksDiv[shop] = document.getElementById(shop + 'bookmarks');
        ErrorDiv[shop]     = document.getElementById(shop + 'error');
    }

    addListener(KeywordsText,         'keyup',  invoke, false);
    addListener(KeywordsText,         'click',  invoke, false);

    addListener(SortBestsellingCheck, 'click',  invoke, false);
    addListener(SortNewestCheck,      'click',  invoke, false);
    addListener(SortLowPriceCheck,    'click',  invoke, false);
    addListener(SortHighPriceCheck,   'click',  invoke, false);

    addListener(AmazonCheck,          'click',  invoke, false);
    addListener(RakutenCheck,         'click',  invoke, false);
    addListener(BiddersCheck,         'click',  invoke, false);
    addListener(StoremixCheck,        'click',  invoke, false);

    addListener(SearchIndexCombo,     'change', invoke, false);
    addListener(GenreCombo,           'change', invoke, false);
    addListener(CategCombo,           'change', invoke, false);
}

 ここでは、各グローバル変数への値の割り当てと、検索に使用するフォームの各項目に、イベントリスナを割り当てる作業をしています。
 InfoDivなどの、divエレメントへの参照を格納するコーディングは少々トリッキーになっていますが、これもコーディング量節約のためです。
 index.phpと併せて見て行くと、どの項目にどのイベントリスナが割り当てられているかがわかります。
 「KeywordsText」にclickイベントが与えられているのは、オートコンプリートのイベントをキャプチャしようと試行したものの名残で、特に意味を成しません。

 次回は、実際の処理を行うファンクションについて順次解説します。