Мне было интересно, как лучше всего выполнить код 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 не определен .