|    | 
СИ-БИ техника | КВ техника | УКВ техника | Радиоизмерения | Защита от TVI | Источники питания | Софт | Расчеты | Справочники
Главная arrow Программирование arrow Java arrow Как заменить интернет-адрес и цель гиперссылки  

Как заменить интернет-адрес и цель гиперссылки

Проблема

Мне нужно из сценария заменить интернет-адрес и цель гиперссылки. Как это сделать?

Решение

Это тоже очень просто. Объект, соответствующий гиперссылке, поддерживает свойства href и target, соответствующие интернет-адресу и цели. Значения обоих свойств задаются в строковом виде.

Вот все возможные значения цели гиперссылки:

"_blank" — загрузка страницы в новом окне Web-обозревателя;

"_parent" и "_top" — загрузка страницы во всем окне Web-обозревателя;

"_self" — загрузка страницы в том же самом окне или фрейме (тот же самый эффект будет, если четвертый параметр пропущен);

"<Имя окна или фрейма>" — загрузка страницы в окне или фрейме с заданным именем.

Пример

Далее приведен HTML-код страницы с гиперссылкой, интернет-адрес которой меняется с одного на другой после щелчка по ней.

<HTML> <HEAD>

<TITLE>Гиперссылка с секретом</TITLE> <SCRIPT TYPE="text/javascript">

// Объявляем переменную-индикатор, какая страница должна быть // открыта после щелчка на гиперссылке var flag = false;

function hrf1OnClick() { var hrflObject = document.all["hrf1"]; hrflObject.href = (flag) ? "page1.html" : "page2.html"; flag = !flag; } </SCRIPT> </HEAD>

<BODY>

<P><A ID="hrf1" HREF="" ONCLICK="hrf1OnClick();" TARGET="_blank">Угадай, какая страница!</А></Р> </BODY> </HTML>

Здесь нужно заметить три очень важные вещи. Рассмотрим их по порядку.

Во-первых, мы не указали интернет-адреса гиперссылки в теге <А>, который ее создает. Поскольку мы все равно подставляем в гиперссылку интернет-адрес программно, указывать его в теге не обязательно (меньше возни, да и HTML-код страницы станет несколько компактнее).

Во-вторых, мы открываем страницы pagel.html и page2.html в новом окне Web-обозревателя (это достигается присвоением значения "_blank" атрибуту target тега <а>). Это обязательно, иначе наш пример не будет работать. Давайте выясним, почему.

Предположим, что мы не включили в тег <а> атрибут target, и теперь страницы pagel.html и page2.html загружаются в том же окне Web-обозревателя, что и тестовая страница. Загрузив тестовую страницу, щелкнем на гиперссылке. Откроется страница page2.htm. При этом тестовая страница будет выгружена, и все объявленные в ней переменные, в том числе и переменная flag, будут удалены из памяти компьютера. Если мы теперь вернемся на тестовую страницу, нажав кнопку Назад на панели инструментов Web-обозревателя, то переменная flag будет заново инициализирована и получит значение false. И при щелчке на гиперссылке мы снова попадем на страницу page2.html.

Web-обозреватели не предоставляют стандартных путей сохранить значение какой-либо переменной в памяти после выгрузки страницы, где она была инициализирована. (Есть, правда, один подходящий в данном случае способ — использование cookie; о нем будет рассказано в главе 13.) Так что приходится выкручиваться и таким образом...

И, в-третьих, заметим, что сам переход на новую страницу (page1.html или page2.html — не важно) происходит уже после выполнения обработчика события onclick. Этим можно пользоваться для подмены интернет-адреса или цели гиперссылки после щелчка на ней (чем мы, собственно, и занимались).



RLBN.ru - Электроника и компьютеры

0.1451
Hosted by uCoz