HTML, Excel, Word, SEOОсновы JavaScript ⇒ Ссылки, заголовок, статус

ОСНОВЫ JavaScript

Учебник JavaScript
·Знакомство с JS. Переменные, операторы, операции
·Функции
·Модель HTML документа
·Иерархия документов в бразуере
·Формы
·Окна и фреймы
·Ссылки, заголовок, статус
·События
·События клавиатуры и мыши
·События. Таймер
·Стили. Управление стилями
·Слои и блоки. Управление видимостью
·Объекты JS
·Внешние объекты
·Внутренние объекты
·Массивы
·Регулярные выражения
·Математика в JS
·Пример простого калькулятора
·Дата и время
·Cookies и хранение состояния
·Немного об AJAX
·Работа с WebMoney

 

Ссылки, заголовок, статус



Управление адресной строкой

Изменение вспомогательных элементов документа

От объекта window осталось уже немного – буквально три-четыре объекта. Но, несмотря на то, что их описание не займет много места, по меньшей мере один из этих объектов заслуживает внимания. Это объект location, то есть – содержимое строки адреса.

Управление адресной строкой

Каждый объект window содержит в себе объект, представляющий строку адреса. Даже в тех случаях, когда собственно окно эту строку не показывает (например, во фреймах).

Этот объект содержит разобранный на составляющие части адрес. То есть, любой URL раскладывается на протокол, хост, порт, путь к файлу, строку запроса и хеш (тот текст, который указывается после знака хеша, «#», откуда и название). Кроме этого, объект location содержит также неразобранную строку.

Одним из самых используемых свойств этого объекта является именно href (полный текст). Дело в том, что при установке этому полю нового значения окно автоматически начинает загрузку указанного документа (кроме случаев изменения хеша, но тут происходит то же самое, что и при клике по ссылке с хешем). Таким образом, переходы на другие страницы можно осуществлять программно, например, так:

window.location.href='http://yandex.ru/'

Не забывайте, что текст который записывается в href вызывает переход на тот же адрес, на который браузер бы отправился при клике по ссылке с этим же href. Так что абсолютные и относительные URL-ы различаются

Для того чтобы перезагрузить страницу присвоения того же адреса, который и был, недостаточно. Вместо этого нужно использовать функцию location.reload()

Кроме этого, у объекта location также имеется функция replace() – она делает то же, что и присвоение нового адреса, но при этом не добавляет ссылку в историю браузера.

Соответственно, обратные действия тоже возможны – так, в любой момент времени можно прочитать содержимое location, и в зависимости от этого выполнить или,  наоборот, не выполнять какое-либо действие.

В частности, именно этот способ – непрерывная проверка location – используется в YUI Framework для обеспечения работы history в AJAX-приложениях.

Рядом с этим объектом стоят еще несколько.  

Так, самым близким к объекту window.location является document.location

К сожалению, обнаружить разницу между ними экспериментально у меня не получилось, но некоторые специалисты утверждают, что изменить содержимое document.location из скрипта невозможно.

Короме этого объекта, стоит отметить еще два. Это document.referrer, который содержит URL документа, с которого был сделан переход на текущий (причем только по ссылкам или посредством изменения location), и history

Объект history позволяет перемещаться по элементам истории переходов браузера в обе стороны (при этом, в целях безопасности, не давая скрипту прочесть значение URL-ов, на которые осуществляется переход). Это делается при помощи функций forward() (то же самое что и кнопка «вперед»), back() (кнопка назад) и go() (для нее нужно указывать число – номер записи в history)

Вообще, объект history является массивом с несколькими дополнительными функциями – по крайней мере, в FireFox. History, как и любой массив, содержит параметр «длина», но, увы, не дает прямого доступа к своим элементам.

Изменение вспомогательных элементов документа

Одним из излюбленных эффектов вебмастеров прошлого века (то есть – до 1999 года, да и сейчас иногда) было изменение строки статуса. По замыслу разработчиков браузеров, эта строка должна была содержать или адрес ссылки, на которую наведен курсор мыши, или что-либо полезное. Вместо этого многие разработчики сайтов, в особенности персональных страниц, любили помещать туда строчки «Привет!», «А я вот как научился вчера делать» и тому подобные. 

Некоторые разработчики использовали строку статуса для размещения там ложного адреса – то есть, ссылка ведет на aaa.com, а в строке статуса пишется bbb.com – особенно это было популярно на хакерских сайтах. 

Таким образом, изменение строки статуса считается дурным тоном. Но есть этому эффекту и другое применение. 

Так, в строку статуса можно писать реальный адрес ссылки (который там бы появился и без этого), но, например, для внешних ссылок, или ссылок открывающихся в новом окне – писать комментарий. 

Делается изменение строки статуса элементарно – простым присвоением нового текста объекту (строковому) window.status Для чтения это свойство не предназначено (все равно вернет то что вы туда записали или пустую строку)

С заголовком окна все гораздо проще (пользователи привыкли, что там пишутся самые разные тексты). Для того чтобы изменить заголовок окна, присвойте текст объекту document.title. Этот способ (в отличие от замены текста внутри тега title) работает во всех браузерах.

С задачами на этот раз негусто – разве что, для разминки, напишите строчку скрипта, которая бы писала путь к файлу в хеше страницы. 



В начало страницы



В начало страницы