jQuery를 다운로드 할 수있는 최신 버전으로 업데이트하려면 어떻게합니까?


33

jQuery 1.4를 기본값으로 사용하는 Drupal 7을 사용하고 있습니까? 최신 버전 (현재 1.7)으로 업데이트하려면 어떻게해야합니까?


1
나는 모듈을 사용하고 싶지 않고 Manuel을 원합니다.
Karmacoma

Drupal에서 jQuery를 수동으로 업그레이드하는 것은 가장 노련한 Drupal 개발자에게도 매우 복잡하고 위험합니다. Clive의 조언을 받아 jQuery 업데이트를 활용해야합니다.
sheena_d

ftp를 통해 misc-jquery.js 파일로 이동하여 새 jquery 코드를 바꿉니다. 권리?
Karmacoma

misc-jquery.js는 내가 아는 한 정확히 jquery 버전과 동일하지 않습니다. 그러나 git drupalcode.org/project/jquery_update.git/tree/refs/heads/… 에 따르면 1.7 지원도 있어야합니다.
AyeshK

@ 패트릭 케니 나는 그것이 맞지 않다고 생각합니다-오늘 jquery_update를 사용하여 jquery 1.8을 선택할 수 있습니다
doub1ejack

답변:


44

한 가지 방법은 설치하는 것입니다 dev에 버전jQuery를 업데이트 (에서 설정 페이지를 방문하여 당신에게 jQuery를 1.7 사용할 수있는 옵션을 제공 http://mysite.com/admin/config/development/jquery_update ).

그러나 현재 사이트의 다른 곳에서 JavaScript를 중단하는 것으로 알려져 있습니다 (예 : 필드 관리 페이지의 위젯 드롭 다운이 더 이상 작동하지 않음). 그 문제와 다른 작은 성가심을 고칠 준비가되어 있다면 이것이 가장 좋은 방법 일 것입니다. 또한 모듈의 dev 버전을 사용하는 것이 특정 릴리스를 사용하는 것보다 버그가 발생할 가능성이 높기 때문에 위험이 없습니다.

수동으로 수행하려면 사이트가 예상대로 작동하도록 다시 작성할 수있는 많은 핵심 자바 스크립트 코드가 있습니다. jQuery는 1.4 / 1.5 버전과 1.7 버전 사이에서 끔찍한 부분을 변경했기 때문에 많은 Drupal Javascript 코드가 작동하지 않습니다.

jQuery 1.7 버전을 드롭하려면을 구현 hook_js_alter()하고 코어 jQuery 파일을 설정 해제 한 다음 원하는 곳에 파일을 추가하십시오.

function MYMODULE_js_alter(&$js) {
  $path = drupal_get_path('module', 'MYMODULE') . '/path/to/jquery.1.7.js';

  // Copy the current jQuery file settings and change
  $js[$path] = $js['misc/jquery.js'];

  // Update necessary settings
  $js[$path]['version'] = 1.7;
  $js[$path]['data'] = $path;

  // Finally remove the original jQuery
  unset($js['misc/jquery.js']);
}

이 작업을 마치면 개발자 도구 / Firebug를 열고 나머지 사이트 JS를 작동시키기 위해 수행해야 할 모든 변경 사항을 확인할 수 있습니다. :)

최신 정보

최신 버전의 jQuery 업데이트 ( 작성시 7.x-2.3 )를 통해 jQuery를 v1.8로 업데이트 할 수 있습니다. 매우 시원합니다.

jQuery를 멀티 모듈은 다른 옵션, 코멘트에 그 지적에 대한 goron 덕분이다. 또한이 모듈은 안정적인 릴리스를 제공하며 기존 자바 스크립트를 중단하지 않습니다.


탁 크맨 !!! 나는 이것을 잠시 동안 찾고 있었다! 필자의 경우 테마별로 다른 버전의 jQuery를로드하고 싶었으므로 myMODULE_js_alter를 MYTHEME_js_alter로 바꾸고 drupal_get_path ( 'theme', 'MYTHEME')를 drupal_get_path ( 'module', 'MYMODULE')
victmo

1
Drupal은 이전 jQuery와 함께 작동하고 jQuery 1.7 또는 1.8과 호환되지 않도록 작성된 자체 JavaScript 파일 세트와 함께 제공됩니다. 최신 jQuery 업데이트는 대체 파일을 제공합니다.
Pierre Buyle

1
모듈의 개발자 버전이 필요합니다. 안정적인 버전에는 1.7
Clive

2
jQuery Multi는 또 다른 옵션으로 dev 버전이 필요하지 않으며 JS를 손상시키지 않습니다. 옵션으로 추가하거나 "유일한 방법"을 제거 하시겠습니까?
goron

1
@ goron 좋은 지적, 감사합니다. 이 답변 중 일부는 이제 사용되지 않을 수 있습니다. 곧 업데이트하겠습니다.
Clive

4

또한 여러 버전의 jquery를 사용할 수있는 jquery 멀티 모듈을 사용해야합니다. 훌륭한 모듈, 나는 모든 프로젝트에서 Druapl 7 및 6에 사용하고 있습니다.


2

hook_js_alter 문서에서 영감을 받아 다음과 같이 작동합니다. 테마의 template.php에 배치 할 수 있습니다. 이것은 Drupal 코어와의 충돌을 피하기 위해 다른 관리자 테마를 사용해야하며, jquery-1.8.3.min.js가 테마 내의 'js'폴더에 있다고 가정합니다 (적합하게 조정 됨).

function [theme_machine_name]_js_alter(&$javascript) {

  $javascript['misc/jquery.js']['data'] = drupal_get_path('theme', '[theme_machine_name]') .
    '/js/jquery-1.8.3.min.js';

  $javascript['misc/jquery.js']['version'] = '1.8.3';

}


다른 관리자 테마를 요구하는 것은 당신이 테마의 목록을 제공 할 수 없다면, 정말 해결책이 아니다 이 방법으로 작동합니다. 내 생각 엔 아주 적을 것입니다. 또한 이러한 테마는 jQuery를 사용할 가능성이 매우 높으며, 이는 jQuery 업데이트 모듈이 특별히 수정하도록 설계된 문제로 이어질 것입니다.
Clive

0

나는 당신의 목적이 무엇인지 잘 모르겠지만 사용자 정의 모듈 개발을 위해 특정 버전이 필요할 때 jQuery.noConflict 를 사용하여 그렇게 할 수있었습니다 .

jquery_update 모듈 (OP가 마음에 들지 않는 것)과 비교할 때 약간의 추가 작업이지만 전체 drupal 설치를 망칠 것인지 걱정할 필요가 없습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.