2010-03-03 3 views
3

드루팔 페이지는 사이트의 다른 모든 페이지와 매우 다른 방식으로 사용하고 있습니다.Drupal이 다른 모듈의 JavaScript를로드하지 못하도록하십시오.

이 페이지에는 특수 j 세트를로드하는 모듈이 있습니다. JS가 다른 모듈의 js 또는 drupal core에서 제대로 작동하지 않는다는 것을 알게되었습니다.

다른 모듈이 해당 특정 페이지에서 drupal_add_js를 수행하지 못하게하려면 어떻게합니까?

감사합니다.

답변

4

해당 모듈을 해킹하는 것을 제외하고는 다른 모듈이 drupal_add_js()을 호출하는 것을 방지 할 수있는 방법이 없습니다.

는 '한 페이지 예외'에 대한

, 당신이 myModule_preprocess_page() 기능을 구현하고 자신의 스크립트를 포함 마크 업 $variables['script']의 내용을 대체 할 수있다 (당신은뿐만 아니라 $variables['closure']을 확인해야 할 수도 있습니다).

또는 해당 페이지에 대한 특정 버전의 page.tpl.php를 구현하고 $scripts 변수의 인쇄를 자신의 출력으로 바꿀 수 있습니다. 모두 해결 제안은 특별한 상황에 대한 올바른 해결책이 될 수 있지만, 난 강력하게 자바 스크립트 '이 다른 모듈에서 JS 잘 작동하지 않는'왜 을 확인하는 것이 좋습니다 것이라고

참고. 충돌하는 JavaScript는 하나 이상의 스크립트에서 버그/실수 코드를 나타내는 지표이기 때문에 장기적으로 유지하기 어려운 대안을 구현하는 것보다 시간을 찾고 수정하는 것이 더 나을 수 있습니다.

+0

+1 좋은 해결책과 소리가 좋습니다. 문제의 근원은 관례 js 일 수있다. – googletorp