You are here

drupal中的JavaScript & jQuery

jQuery基本

Drupal 6.0到6.2包含的是jQuery 1.2.3。在Drupal 6.3中,已升级到jQuery 1.2.6,到目前为止,这是最新版本了。如果你的站点需要最新的jQuery版本的话,那么你可以使用jQuery升级模块

默认JavaScript文件

与style.css类似,现在也存在一个能被自动加载到主题中的JavaScript文件,即为script.js。这个文件应该放在主题的根目录下面。 

JavaScript主题化

对于JavaScript代码,现在有一个主题化机制。与自动加载的script.js一起,它使得主题开发者对于Drupal站点上的脚本事件拥有更多的控制权。通常,人们的JavaScript代码生成标记文本(markup),并将其插入到页面中。然而,在脚本中,可能包含一些应编码进去的HTML,而这些硬编码是不允许被修改的。

模块在Drupal.theme.prototype的命名空间下提供了默认的主题函数。例如,如果我想创建自己的主题函数 powered(为了展示"powered by Drupal"图标),它应该看起来是这样的                                                  

Drupal.theme.prototype.powered = function(color, height, width) {
  return '<img src="/misc/powered-'+ color +'-'+ height +'x'+ width +'.png" />";
}

我调用它的方式是            

$('.footer').append(Drupal.theme('powered', 'black', 135, 42));

这将在页脚添加一个按钮。

如果我想在我的主题中覆写这个函数,可以使用我主题目录下面的文件来代替/misc,我可以这样:

Drupal.theme.prototype.powered = function(color, height, width) {
  return '<img src="/sites/all/themes/powered_images/powered-'+ color +'-'+ height +'x'+ width +'.png" />";
}

这个利用了普通JavaScript的优点。前面的函数放在主题里面的一个JavaScript文件中,从而避免修改相关模块的JavaScript文件。

JavaScript主题函数的返回类型可以多种多样。既可以是简单的字符串,也可以是复杂的数据类型,比如对象,数组,和jQuery元素。参考原始的函数,看它返回什么,在你的定制主题函数中就应该返回什么。

仍然需要的:jQuery介绍,如何添加聚合(http://drupal.org/node/119441的补丁)等等。

原文: http://drupal.org/node/171213,

译者: 葛红儒, Think in Drupal

Drupal版本: