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