Шаг 77.
Объект History

    Этот шаг будет посвящен объекту History.

    Объект History содержит информацию об адресах, которые браузер посетил во время текущего сеанса. Мы можем передвигаться по этому списку с помощью сценария, загружая страницы, ссылки на которые он содержит. Объект History имеет только одно свойство и три метода.

Таблица 1.Основные свойства и методы объекта History
Название Описание
Свойства
Length Число документов в массиве.
Методы
Back Переход на предыдущий документ.
Forward Переход на последующий документ.
Go <номер> Переход на указанное количество документов. Если номер значение положителен, то переход вперед, если отрицателен – то назад.

    Приведем пример использования перечисленных методов.

   


Пример. Создадим набор HTML-документов, создающих два фрейма. В верхнем фрейме находятся три кнопки, одна из которых используется для загрузки в нижний фрейм HTML-документа, адрес которого указывается в диалоговом окне. Остальные две кнопки используются для перемещения по загруженным ранее документам.

    Тексты HTML-документов, реализующих данную задачу, приведены ниже.

    Текст главного HTML-документа, содержащего описание структуры фреймов:

<HTML>
<HEAD>
<TITLE>Пример использования объекта History</TITLE>
<FRAMESET ROWS=30%,*>
<FRAME Name=Fr1 SRC=pr1.html>
<FRAME Name=Fr2>
</FRAMESET>
</HTML>

    Текст HTML-документа pr1.html, находящегося в верхнем фрейме:

<HTML>
<HEAD>
<SCRIPT LANGUAGE=VBScript>
<!--
kol = 0 'Количество загруженных документов.
nomer = 0 'Номер текущего документа.

'Процедура активации/деактивации кнопок.
Sub Proverka (m)
  If (m <= kol) and (m>1) Then 
    'Делаем доступной кнопку НАЗАД.
    Top.Fr1.Document.Form1.Button3.Disabled=FALSE
  Else
    'Делаем недоступной кнопку НАЗАД.
    Top.Fr1.Document.Form1.Button3.Disabled=TRUE
  End If
  If (m < kol) and (kol > 1) Then 
    'Делаем доступной кнопку ВПЕРЕД.
    Top.Fr1.Document.Form1.Button2.Disabled=FALSE
  Else
    'Делаем недоступной кнопку ВПЕРЕД.
    Top.Fr1.Document.Form1.Button2.Disabled=TRUE
  End If
End Sub
'Процедура, выполняющаяся после загрузки документа.
Sub Window_OnLoad()
  'Делаем сначала кнопки недоступными.
  Top.Fr1.Document.Form1.Button2.Disabled=TRUE
  Top.Fr1.Document.Form1.Button3.Disabled=TRUE
End Sub

'Загрузка документа.
Sub Button1_OnClick()
  X=Prompt("Задайте URL-адрес", "E:\index.html")
  If X<>"" Then 
     Top.Fr2.Location.Href = X
     'Количество загруженных документов
     'увеличим на 1.
     kol = kol + 1
     Alert "Загружен документ №"&kol
     nomer = kol 'Номер текущего документа.
     'Проверка на активацию/деактивацию кнопок.
     Proverka nomer 
  End If 
End Sub  

Sub Button2_OnClick() 'Нажата кнопка ВПЕРЕД.
  Top.Fr2.History.Forward 
  nomer = nomer + 1
  Alert "Загружен документ №"&nomer
  'Проверка на активацию/деактивацию кнопок.
  Proverka (nomer)
End Sub  
Sub Button3_OnClick() 'Нажата кнопка НАЗАД.
  Top.Fr2.History.Back 
  nomer = nomer - 1
  Alert "Загружен документ №"&nomer
  'Проверка на активацию/деактивацию кнопок.
  Proverka (nomer)
End Sub  
'-->
</SCRIPT>
</HEAD>
<BODY>
<H2>Свойства объекта Navigator</H2>
<FORM NAME="Form1">
<INPUT TYPE="BUTTON" NAME="BUTTON1" VALUE="Загрузка документа">
<INPUT TYPE="BUTTON" NAME="BUTTON2" VALUE="Вперед">
<INPUT TYPE="BUTTON" NAME="BUTTON2" VALUE="Назад">
</FORM>
</BODY>
</HTML>
Текст этой программы можно взять здесь.

    Результат просмотра в браузере будет следующим:


Рис.1. Результат работы приложения

    Опишем назначение каждой из процедур, однако сначала отметим, что мы создали две переменные, которые будут доступны во всех процедурах. Это переменная kol, хранящая общее количество открытых документов, и nomer, содержащая номер текущего документа.

    Процедура Window_OnLoad() вызывается после загрузки документа. Здесь кнопки Вперед и Назад делаются недоступными, так как еще нет ни одного загруженного документа. Заметим также, что эти кнопки останутся недоступными и в том случае, когда будет загружен только один документ.

    Обратите внимание, что проверка включения/выключения доступности кнопок Вперед и Назад происходит внутри процедуры Proverka, в которую передается номер активного в данный момент документа.

    Кнопка Вперед будет активной в том случае, когда загружено более одного документа и в данный момент отображается не последний документ. Аналогично кнопка Назад будет активной тогда, когда в массиве загруженных документов более одного документа и в браузере находится не первый документ.

    Для контроля за правильностью работы процедур выводится диалоговое окно с номером активного документа.

    Слеующий шаг посвящен объекту Document.




Предыдущий шаг Содержание Следующий шаг