我无法在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脚本块中提取的代码。
答案 0 :(得分:0)
我找到了解决这个问题的方法。
在visualsearch的演示实现中,容器引用visualsearch div的id属性。为了使visualsearch在Drupal中工作,容器必须引用类属性。
Drupal模块
...
return "<div id=\"searchbox\" class=\"searchbox\"></div>";
的Javascript
window.VisualSearch = VS.init({
container : $('.searchbox'),
....