it-swarm-ko.tech

홈페이지에만 JavaScript 블록을 추가하려면 어떻게합니까?

가입 한 히트 매핑 서비스를 통해 클릭을 기록 할 수 있도록 내 홈페이지 (및 내 홈페이지에만)에 추가해야하는 JavaScript 블록이 있습니다.

그들은 코드를 </body> 태그 바로 앞에 두어야한다고 지정했지만 <body> 태그 안에 아무 곳에 나 두는 것이 안전하다고 생각합니다.

스 니펫이 다른 페이지에 나타나지 않도록하고 싶습니다. 어떻게하면됩니까?

나는 Drupal 6.

8
PHLAK

홈페이지에서 프론트 페이지를 의미하는 경우 사용자 정의 모듈에서 hook_preprocess_page()을 구현할 수 있습니다.

function mymodule_preprocess_page(&$variables) {
  if ($variables['is_front']) {
    drupal_add_js(drupal_get_path('module', 'mymodule') . '/mymodule.js');
    $variables['scripts'] = drupal_get_js();
  }
}

동일한 코드가 Drupal 7에서 작동합니다. $variables['is_front']_ template_preprocess_default_variables () ( template_preprocess () 에서 설정 됨) 다음 코드.

  // drupal_is_front_page() might throw an exception.
  try {
    $variables['is_front'] = drupal_is_front_page();
  }
  catch (Exception $e) {
    // If the database is not yet available, set default values for these
    // variables.
    $variables['is_front'] = FALSE;
    $variables['db_is_active'] = FALSE;
  }

drupal_add_js()을 먼저 호출 한 다음 drupal_get_js()을 호출하는 이유는 다음 코드를 실행 한 후에 실행되는 다른 모듈이 여전히 JavaScript 파일을 추가하기 때문입니다.

function quite_a_different_module_preprocess_page(&$vars) {
  drupal_add_js(drupal_get_path('module', 'quite_a_different_mymodule') . '/quite_a_different_module.js');
  $vars['scripts'] = drupal_get_js();
}

drupal_add_js()을 사용하면 파일이 drupal_get_js () 에서 반환 된 출력에 추가됩니다.

15
kiamlaluno

코드가 head 섹션에 들어가면 template.php에 다음 함수를 추가하십시오.

function MYTHEME_preprocess_page (&$vars) {
  if ($vars['is_front']) {
    $vars['scripts'] .= "// my JS for the home page";
  }
}

Page.tpl.php의 적절한 위치에 다음 코드를 추가 할 수도 있습니다.

<?php if ($is_front): ?>
  // JS goes here
<?php endif; ?>

이를 수행하는 다른 방법이 있지만 이것이 가장 쉬운 방법 일 것입니다.

6
mpdonadio