2012-02-17 7 views
0

Drupalモジュールページでvisualsearch.jsコントロールを起動して実行するのに問題があります。私はdemo.htmlスクリプトブロックと全く同じjavascriptを使用しています(ダウンロードzipパッケージやサイトのデモのソースコードを見てください)。別のjavascriptファイルにコピーして貼り付けました。また、私のDrupalモジュール内のすべてのcssとjavascriptの依存関係を、demo.htmlで定義されている順序に従ってロードしました。DrupalモジュールのVisualsearch.jsページ

Drupalのコード

<?php 

    function mymodule_menu() { 
     $items = array(); 

     $items['mymodule'] = array(
      'title' => 'MyModule', 
      'page callback' => 'mymodule_main', 
      'access callback' => TRUE, 
      'type' => MENU_NORMAL_ITEM 
     ); 

     return $items; 
    } 

    function mymodule_main() { 

     drupal_add_css(absolute paths of all css dependencies); 
     drupal_add_js(absolute paths of all javascript dependencies (in order), followed by the standalone javascript file that contains the code extracted from the demo.html script block); 

     return " 
      <div id=\"VS\" class=\"container\"> 
       <div id=\"searchbox\"></div> 
       <div id=\"feedback\"></div> 
      </div>"; 
    } 

私は純粋なHTML/JavaScriptの環境でこれと同じセットアップを実行し、すべてがうまく働きました。つまり、上記のように依存関係を読み込み、htmlを含むhtmlページを作成しました。次に、demo.htmlスクリプトブロックから抽出したコードを含む別のスクリプトがありました。

答えて

0

私はこの問題を解決しました。

visualsearchのデモ実装では、containerはvisualsearch divのid属性を参照します。 Drupalでvisualsearchを動作させるには、コンテナはクラス属性を参照する必要があります。

Drupalのモジュール

... 
return "<div id=\"searchbox\" class=\"searchbox\"></div>"; 

Javascriptを

window.VisualSearch = VS.init({ 
    container : $('.searchbox'), 
    .... 
関連する問題