我们现在要解决的一个问题是:我们必须确保,仅当客户端浏览器具有所需层次的 JavaScript 支持时,前面创建的 jQuery 查询才得以执行。
如果浏览器不支持现代的 JavaScript 和 AJAX,我们就不在客户端对 HTML 进行任何修改。
Drupal 的 JavaScript 库中,有一个函数用于测试客户端浏览器是否具有必要层次的 JavaScript 支持。这个函数的名字是 Drupal.jsEnabled()。如果浏览器具有足够的 JavaScript,这个函数返回 true,否则返回 false。
这个名字有稍许误导性。Drupal.jsEnabled() 检测特定层次的支持。如果浏览器只有部分所需特性,那么它将不会被 Drupal 标记为 JS-enabled。因此,有些浏览器虽然支持 JavaScript,但 Drupal.jsEnabled() 并不认为它是一个JavaScript 浏览器。
有了这个函数,我们就可以在 philquotes.js 文件中加入:
if(Drupal.jsEnabled) {
$("#philquotes-origin").after("<a>Next »</a>");
}
现在,只有当浏览器支持 Drupal JavaScript 库所需的现代 JavaScript 特性时,jQuery 调用才会被执行。
不过,我们仍然有个问题。显然,jQuery调用有可能在 HTML 完全装载之前执行。如果是这种情况,新的 HTML 代码将不会被插入。

-
一个 Drupal 函数: Drupal.jsEnabled()
libo 发表于 2009-01-14 13:25
