Чтение онлайн

на главную - закладки

Жанры

Windows Script Host для Windows 2000/XP

Попов Андрей Викторович

Шрифт:

this.CurRecord--;

}

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

function ListPersons_FirstRecord {

 this.CurRecord = 0;

}

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

function ListPersons_FinalRecord {

 this.CurRecord = this.PersonArr.length - 1;

}

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

function ListPersons_NewRecord {

 var Root,NewElem;

 //Сохраняем в переменной Root ссылку на корневой элемент

 //документа

 Root=XML.documentElement;

 //Создаем новый элемент Person

 NewElem=XML.createElement("Person");

 //Добавляем новый элемент в XML-файл

 Root.appendChild(NewElem);

 //Сохраняем XML-файл на диске

 XML.save(PathBook);

 //Обновлем в форме данные для последней добавленной записи

 this.RefreshDialog(false);

}

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

function ListPersons_DelRecord {

 var Root,DelNom;

 //Сохраняем в переменной Root ссылку на корневой элемент

 //документа

 Root=XML.documentElement;

 //В переменной DelNom сохраняем номер удаляемого элемента Person

 DelNom=this.CurRecord+1;

 //Удаляем DelNom-й элемент Person из XML-файла

 Root.removeChild(Root.childNodes.item(DelNom))

 //Сохраняем XML-файл на диске

 XML.save(PathBook);

 //Выводим сообщение о том, что запись удалена

 WshShell.Popup("Запись N "+DelNom+" удалена",0,"Информация",

vbInformation+vbOkOnly);

 //Обновлем в форме данные для первой записи

 this.RefreshDialog(true);

}
 

Вывод формы из сценария WSH

Для того чтобы вывести из сценария WSH разработанную HTML-форму на экран, нужно вначале получить ссылку на объект

Application
, который определяется в объектной модели Internet Explorer. Делается это следующим образом:

var ie = WScript.CreateObject("InternetExplorer.Application", "ie_");

При этом в память загружается новый экземпляр Internet Explorer, а ссылка на этот объект присваивается переменной

ie
(само окно браузера по умолчанию невидимо, для его отображения на экране необходимо установить свойство
Visible
объекта
Application
в 1). В качестве второго параметра метода
CreateObject
указан префикс "
ie
_", посредством которого мы сможем написать функции-обработчики событий Internet Explorer.

Внешний вид браузера Internet Explorer настраивается с помощью нескольких свойств объекта

Application
:

//Устанавливаем свойства объекта ie для отображения формы

ie.AddressBar = false; //Адресная строка не выводится

ie.Fullscreen = false; //Полноэкранный режим запрещен

ie.MenuBar = false; //Главное меню браузера не выводится

ie.Resizable = false; //Изменять размеры окна нельзя

ie.StatusBar = false; //Строка статуса не выводится

ie.ToolBar = false; //Инструментальная панель не выводится

//Устанавливаем размеры окна

ie.Height = 300; //Высота

ie.Width = 780; //Длина

Для того чтобы загрузить в браузер нужный нам файл Phone.htm с описанием формы, используется метод Navigate объекта Application:

ie.Navigate(PathHTML);

В качестве параметра метода

Navigate
указывается путь к файлу Phone.htm, который заранее устанавливается в функции
InitPath
:

function InitPath {

 BasePath=WshShell.CurrentDirectory+"\\";

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

 PathBook=BasePath+"book.xml";

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

 PathHTML=BasePath+"Phone.htm";

}

Далее следует учесть, что сценарий WSH и окно браузера, в котором загружена форма, — это два независимых процесса. Поэтому в сценарии после загрузки формы в окно браузера необходимо дождаться, пока пользователь не закроет это окно. Для этого мы присвоим глобальной переменной

IsQuit
значение
false
и заставим сценарий выполняться до тех пор, пока значение этой переменной не станет равным
true
:

while (!IsQuit)

 //Приостанавливаем сценарий на 0,1 сек

 WScript.Sleep(100);

При закрытии формы будет генерироваться событие

OnQuit
объекта
Application
, поэтому мы напишем функцию-обработчик
ie_OnQuit
этого события, в которой будем устанавливать
isQuit
в
true
и сохранять в XML- файле данные, которые были изменены в форме (листинг 7.9).

Листинг 7.9. Функция-обработчик закрытия окна браузера

function ie_OnQuit {

 IsQuit=true;

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

 objListPersons.SaveData;

}

В нашем сценарии загрузка в браузер HTML-файла с формой будет производиться в основной запускной функции

Main
(листинг 7.10).

Листинг 7.10. Функция Main

function Main {

 //Создаем объект WshShell

 WshShell = WScript.CreateObject("WScript.Shell");

Поделиться:
Популярные книги

Портрет дьявола: Собрание мистических рассказов

Скотт Вальтер
Проза:
классическая проза
8.09
рейтинг книги
Портрет дьявола: Собрание мистических рассказов

Воронцов. Перезагрузка. Книга 2

Тарасов Ник
2. Воронцов. Перезагрузка
Фантастика:
попаданцы
альтернативная история
фэнтези
5.00
рейтинг книги
Воронцов. Перезагрузка. Книга 2

Глэрд IX: Легионы во Тьме

Владимиров Денис
9. Глэрд
Фантастика:
боевая фантастика
попаданцы
фэнтези
5.00
рейтинг книги
Глэрд IX: Легионы во Тьме

Рядовой. Назад в СССР. Книга 1

Гаусс Максим
1. Второй шанс
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Рядовой. Назад в СССР. Книга 1

Жизнь, которой не было

Денис Палимов
1. Жизнь, которой не было
Фантастика:
городское фэнтези
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Жизнь, которой не было

Весь цикл «Десантник на престоле». Шесть книг

Ланцов Михаил Алексеевич
Десантник на престоле
Фантастика:
альтернативная история
8.38
рейтинг книги
Весь цикл «Десантник на престоле». Шесть книг

Кодекс Охотника. Книга XXIV

Винокуров Юрий
24. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга XXIV

Города в полете

Блиш Джеймс Бенджамин
Фантастика:
космическая фантастика
4.25
рейтинг книги
Города в полете

Анти-Ксенонская Инициатива

Вайс Александр
7. Фронтир
Фантастика:
боевая фантастика
космическая фантастика
космоопера
5.00
рейтинг книги
Анти-Ксенонская Инициатива

Гримуар темного лорда VIII

Грехов Тимофей
8. Гримуар темного лорда
Фантастика:
боевая фантастика
альтернативная история
аниме
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Гримуар темного лорда VIII

Я до сих пор не царь. Книга XXVII

Дрейк Сириус
27. Дорогой барон!
Фантастика:
юмористическое фэнтези
аниме
попаданцы
5.00
рейтинг книги
Я до сих пор не царь. Книга XXVII

Последний Паладин. Том 8

Саваровский Роман
8. Путь Паладина
Фантастика:
боевая фантастика
попаданцы
5.00
рейтинг книги
Последний Паладин. Том 8

Ефрейтор. Назад в СССР. Книга 2

Гаусс Максим
2. Второй шанс
Фантастика:
попаданцы
альтернативная история
7.00
рейтинг книги
Ефрейтор. Назад в СССР. Книга 2

Династия. Феникс

Майерс Александр
5. Династия
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Династия. Феникс