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

//Изменение значения тега tgName XML-элемента obj

function SetTagVal(obj, tgName, sVal) {

 var ElemList,New;

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

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

 ElemList=obj.getElementsByTagName(tgName);

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

 if (ElemList.length>0)

  //Устанавливаем значение элемента, задаваемого

  //тегом tgName

  ElemList.item(0).text=sVal;

 else {

  //Создаем новый элемент с именем tgName

  NewElem=XML.createElement(tgName);

  //Добавляем новый элемент в качестве дочернего для

  //элемента obj

  obj.appendChild(NewElem);

  //Устанавливаем значение добавленного элемента

  obj.lastChild.text=sVal;

 }

}

Полный текст сценария IEPhoneBook.js приведен в листинге 7.14.

Листинг 7.14. Сценарий IEPhoneBook.js

/*******************************************************************/

/* Имя: IEPhoneBook.js                                             */

/* Язык: JScript                                                   */

/* Описание: Сценарий для работы с записной книжкой                */

/*           (графический интерфейс пользователя на основе         */

/*           HTML-формы).                                          */

/*******************************************************************/

//Объявляем глобальные переменные

var

 WshShell,

 PathBook,       //Путь к файлу с данными

 PathHTML,       //Путь к HTML-файлу с формой

 XML,            //Экземпляр объекта XML DOM

 ie,             //Экземпляр объекта InternetExplorer.Application

 doc,            //Экземпляр объекта Document

 IsQuit,         //Признак выхода из сценария

 objListPersons; //Экземпляр объекта ListPersons

//Инициализируем константы для диалоговых окон

var vbInformation=64,vbOkOnly=0;

//Построение путей к файлам

function InitPath() {

 BasePath=WshShell.CurrentDirectory+"\\";

 //Путь к файлу с данными

 PathBook=BasePath+"book.xml";

 //Путь к файлу с HTML-формой

 PathHTML=BasePath+"Phone.htm";

}

//Определение значения тега 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 "";

}

//Изменение значения тега tgName XML-элемента obj

function SetTagVal(obj, tgName, sVal) {

 var ElemList,New;

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

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

 ElemList=obj.getElementsByTagName(tgName);

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

 if (ElemList.length>0)

  //Устанавливаем значениеэлемента, задаваемого

  //тегом tgName

  ElemList.item(0).text=sVal;

 else {

  //Создаем новый элемент с именем tgName

  NewElem=XML.createElement(tgName);

  //Добавляем новый элемент в качестве дочернего для

  //элемента obj

  obj.appendChild(NewElem);

  //Устанавливаем значение добавленного элемента

  obj.lastChild.text=sVal;

 }

}

//Конструктор объекта Person

function Person() {

 //Инициализируем свойства объекта

 this.LastName="";

 this.Name="";

 this.Phone="";

 this.Street="";

 this.House="";

 this.App="";

 this.Note="";

 //Устанавливаем для метода LoadDialog указатель на

 //функцию Person_LoadDialog

 this.LoadDialog=Person_LoadDialog;

}

//Заполнение полей в форме для текущей записи

function Person_LoadDialog() {

 //Заполняем поля ввода в форме значениями соответствующих

 //свойств объекта Person

 doc.all.txtLastName.value = this.LastName;

 doc.all.txtName.value=this.Name;

 doc.all.txtPhone.value=this.Phone;

 doc.all.txtStreet.value=this.Street;

 doc.all.txtHouse.value=this.House;

 doc.all.txtApp.value = this.App;

 doc.all.txtNote.value = this.Note;

}

//Конструктор объекта ListPersons

function ListPersons() {

 //          Свойства объекта