Лучший способ выполнить js только на определенной странице

Мне было интересно, как лучше всего выполнить код java-скрипта только на определенных страницах.

Давайте представим, что у нас есть веб-сайт на основе шаблона, задано правило перезаписи содержимого, доступен jquery, и в основном это выглядит так:

  <!DOCTYPE html>
  <html>
   <head>
    <script src="script.js"></script>
   </head>
   <body>
    ...
    include $content;
    ..
   </body>
</html>

'информация' содержимого содержит кнопку, мы хотим, чтобы что-то происходило при нажатии , 'оповещение' о содержимом должно отображаться как сообщение при наведении курсора на текстовое поле.

Как лучше всего запустить эти действия, не вылетая при этом из-за того, что объект не найден?

Первый вариант: использование window.location.pathname

 $(document).ready(function() {
      if (window.location.pathname == '/info.php') {
          $("#button1").click(function(){'
            //do something
          })
      }else if(window.location.pathname == '/alert.php'){
           $("#mytextfield").hover(){
             alert('message');
           }
    }

Второй вариант: проверка существования элементов

$(document).ready(function() {
  if ($("#button1").length > 0) {
      $("#button1").click(function(){'
        //do something
      })
  }else if ($("#mytextfield").length > 0){
       $("#mytextfield").hover(){
         alert('message');
       }
}

Третий вариант: включение скрипта в загруженный шаблон

//stands for itself

Это лучшее решение? Или я должен ладить с одним из этих решений?

Ваш опыт, использование или любые ссылки, относящиеся к этой теме, приветствуются.

// РЕДАКТИРОВАТЬ:

Возможно, я выбрал плохой пример, фактический код будет примерно таким:

    mCanvas = $("#jsonCanvas");
    mMyPicture = new myPicture (mCanvas);

где конструктор myPicture получает контекст элемента холста и выдает ошибку, если mCanvas не определен .

50
задан Johannes Staehlin 5 March 2012 в 18:35
поделиться