如何在管理页面没有问题的情况下使用jQuery 1.7?


11

有人成功运行jQuery 1.7吗?我在需要jQuery 1.7或更高版本的页面上使用了jQuery组件。此版本会在管理界面中引起一些不必要的副作用,例如选中的复选框在可用时不显示其他控件,或者字段小部件不处于活动状态。

我想知道是否有解决方案可以让我轻松使用jQuery 1.7。

我问之前已经看到了这个答案。据我了解,有两个独立的问题:将jQuery的src更新到1.7.x,以及更新admin使用的javascript。我尝试使用最新的jquery_update开发快照,并应用了一个补丁,但它不能解决UI的上述问题。


该政策几乎规定,升级Drupal版本不应破坏任何依赖jQuery的内容,因此版本保持一致。
mpdonadio

从技术上讲,此问题是drupal.stackexchange.com/a/41394/809的伪装。我也有一些偏见,但另一个问题有一个更好的答案。
ericduran 2012年

Answers:


11

我会在这里查看Clive关于手动执行操作的建议:

如何将jQuery更新到可以下载的最新版本?

并在脚本中添加更多智能以使其不在管理页面上执行,例如:

if (arg(0)=='admin') {
  return;
}

您还必须在页面等上执行此操作node/#/addnode/#/edit以免破坏那里的任何“核心”,或者,如果您愿意,可以深入到drupal核心中,并使其他所有内容都达到1.7。

根据您所运行的Drupal版本,这可能也可行:

function YOURTHEME_preprocess_page(&$vars) {
  if (YOUR CONDITION HERE) {
    $scripts = drupal_add_js('PATH TO YOUR JQUERY FILE');
    unset($scripts['core']['PATH TO DRUPAL JQUERY FILE']);
    $variables['scripts'] = drupal_get_js('header', $scripts);
  }
}

您可以将“您的条件在这里”设置为您希望新jQuery进入的任何页面,例如,arg(0)!='admin'等等。


谢谢Jimajamma,我没有使用您的代码,但是您的回答使我处在正确的轨道上。我找到了一个不错的补丁程序,它将UI添加到jquery_update配置屏幕,使您可以使用不同版本的jQuery进行管理。drupal.org/node/1524944。到目前为止工作良好。
Artur

2
请记住,ctools也具有使用jquery更新的中断历史。您可能需要调整补丁以解决此问题。
mpdonadio

感谢您指出了这一点。您是否有一个最佳的测试方法?
阿图尔(Artur)2012年

3
+1一种很好的简单方法来获取URL中没有“ admin”的所有管理页面的列表是:$pages = module_invoke_all('admin_paths');
Clive

1
@Clive,这会捕获ctools AJAX URL吗?就像您在“正常”页面上使用ctools小部件一样?
mpdonadio

2

jQuery Update现在可以为前端和后端启用不同的jQuery版本。下载最新的开发版本,您很高兴:后端为1.5,因此它可与Views UI配合使用,前端为1.7或1.8,以实现jQuery的额外优势。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.