Мне было интересно, что было бы лучшим способом выполнить код java- script только на определенных страницах.
Предположим, что у нас есть веб-сайт на основе шаблонов, переписываем правило для набора ist, а jquery доступно и в основном выглядит следующим образом:
<!DOCTYPE html>
<html>
<head>
<script src="script.js"></script>
</head>
<body>
...
include $content;
..
</body>
</html>
Содержимое "информация" содержит кнопку, мы хотим, чтобы что-то произошло в клике, содержимое "alert" должно указывать в качестве сообщения, когда вы наводите текстовое поле.
Каков наилучший способ запуска этих действий, не запускаясь в ошибку, потому что объект не найден?
Вариант один: использование 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');
}
}
Вариант три: включить script в загруженный шаблон
//stands for itself
Это лучшее решение? Или мне нужно ладить с одним из этих решений?
Ваш опыт, использование или любые ссылки, связанные с этой темой, оценены.
//EDIT:
Возможно, я выбрал плохой пример, фактический код будет примерно таким:
mCanvas = $("#jsonCanvas");
mMyPicture = new myPicture (mCanvas);
где конструктор myPicture получает контекст элемента canvas и выдает ошибку, если mCanvas undefined.