Drupal模块页面中的Visualsearch.js

时间:2012-02-17 15:17:06

标签: php javascript jquery drupal-6

我无法在Drupal模块页面上启动visualsearch.js控件并运行。我使用与demo.html脚本块中完全相同的javascript(您可以在下载zip包中找到它或通过查看其站点演示的源代码),我将其复制并粘贴到单独的javascript文件中。我还按照demo.html中定义的顺序在Drupal模块中加载了所有css和javascript依赖项。

Drupal Code

<?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脚本块中提取的代码。

1 个答案:

答案 0 :(得分:0)

我找到了解决这个问题的方法。

在visualsearch的演示实现中,容器引用visualsearch div的id属性。为了使visualsearch在Drupal中工作,容器必须引用属性。

Drupal模块

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

的Javascript

window.VisualSearch = VS.init({
    container : $('.searchbox'),
    ....