Выбрать главу

function btnPrevious_OnClick() {

 //Проверяем, были ли сделаны изменения в форме

 if (objListPersons.IsChanged) {  //Изменения были сделаны

  //Сохраняем данные в XML-файле

  objListPersons.SaveData();

  //Заново загружаем данные из XML-файла в массив PersonArr

  objListPersons.FileToArray();

 }

 //Переходим к предыдущей записи в массиве

 objListPersons.PreviousRecord();

 //Загружаем в форму данные из массива PersonArr

 //для текущей записи

 objListPersons.LoadDialog();

 //Выводим сообщение в заголовке окна

 doc.title = "Запись N " + (objListPersons.CurRecord + 1);

}

//Функция-обработчик нажатия на кнопку "Новая запись"

function btnNew_OnClick() {

 //Проверяем, были ли сделаны изменения в форме

 if (objListPersons.IsChanged) { //Изменения были сделаны

  //Сохраняем данные в XML-файле

  objListPersons.SaveData();

  //Заново загружаем данные из XML-файла в массив PersonArr

  objListPersons.FileToArray();

 }

 //Добавляем новую запись в XML-файл

 objListPersons.NewRecord();

 //Загружаем в форму данные из массива PersonArr

 //для добавленной записи

 objListPersons.LoadDialog();

 //Выводим сообщение в заголовке окна

 doc.title = "Добавлена новая запись";

}

//Функция-обработчик нажатия на кнопку "Удалить"

function btnDelete_OnClick() {

 //Удаляем текущую запись из XML-файла

 objListPersons.DelRecord();

 //Загружаем в форму данные из массива PersonArr

 //для первой записи

 objListPersons.LoadDialog();

 //Выводим сообщение в заголовке окна

 doc.title = "Запись удалена";

}

//Функция-обработчик нажатия на кнопку ">"

function btnNext_OnClick() {

 //Проверяем, были ли сделаны изменения в форме

 if (objListPersons.IsChanged) { //Изменения были сделаны

  //Сохраняем данные в XML-файле

  objListPersons.SaveData();

  //Заново загружаем данные из XML-файла в массив PersonArr

  objListPersons.FileToArray();

 }

 //Переходим к следующей записи в массиве

 objListPersons.NextRecord();

 //Загружаем в форму данные из массива PersonArr

 //для текущей записи

 objListPersons.LoadDialog();

 //Выводим сообщение в заголовке окна

 doc.title = "Запись N " + (objListPersons.CurRecord + 1);

}

//Функция-обработчик нажатия на кнопку ">>"

function btnFinal_OnClick() {

 //Проверяем, были ли сделаны изменения в форме

 if (objListPersons.IsChanged) { //Изменения были сделаны

  //Сохраняем данные в XML-файле

  objListPersons.SaveData();

  //Заново загружаем данные из XML-файла в массив PersonArr

  objListPersons.FileToArray();

 }

 //Переходим к последней записи в массиве

 objListPersons.FinalRecord();

 //Загружаем в форму данные из массива PersonArr

 //для текущей записи

 objListPersons.LoadDialog();

 //Выводим сообщение в заголовке окна

 doc.title = "Запись N " + (objListPersons.CurRecord + 1);

}

//Функция-обработчик изменения текста в полях ввода

function txtBoxOnChange() {

 //Устанавливаем признак изменения данных в форме

 objListPersons.IsChanged = true;

 //Выводим сообщение в заголовке окна

 doc.title = "Редактирование данных";

} 

Окончательная доработка сценария IEPhoneBook.js

Выше были описаны все основные функции, которые используются для работы с записной книжкой в диалоговом режиме. Осталось лишь собрать эти функции в один JScript-сценарий IEPhoneBook.js, определить глобальные переменные и добавить вспомогательные функции GetTagVal(obj, tgName) и SetTagVal(obj, tgName, sVal) для доступа к значениям XML-элементов (листинг 7.13).

Листинг 7.13. Функция для доступа к значениям XML-элементов

//Определение значения тега tgName XML-элемента obj

function GetTagVal(obj, tgName) {

 var ElemList;

 //Создаем коллекцию дочерних для obj элементов, которые

 //задаются тегом tgName

 ElemList=obj.getElementsByTagName(tgName);

 //Проверяем, есть ли в коллекции ElemList элементы

 if (ElemList.length>0)

  //Возвращаем значение тега tgName

  return ElemList.item(0).text

 else return "";

}