Клиентский JavaScript 1.3 Руководство

         

Фильтры новостей


Всё сказанное выше rule-файла относится и к фильтрам новостей. Единственное  отличие - в строке type. Для фильтров почты Вы используете type="2". Для фильтров новостей Вы используете type="8".



Обращение к объекту сообщения


Функции фильтра принимают один аргумент, объект сообщения. Для фильтров новостей это объект News Message, а для фильтров почты - объект Mail Message.



Открытие консоли JavaScript


Для открытия консоли JavaScript выполните одно из следующих действий. Консоль открывает новое окно.

Введите в адресную строку такой URL.javascript:

Выберите Open Page из меню File и введите следующий URL:javascript:

Вставьте следующий код в HTML Вашей страницы:<A HREF="javascript:">Open JavaScript console</A>



Отладка фильтров


Если с фильтрами имеются какие-нибудь проблемы, Вы можете получить стандартное предупреждение JavaScript о природе ошибки. При наличии проблем, фильтры не используются для фильтрации сообщений. Соответственно, если проблемы имеются, вся почта в папке Inbox остаётся без изменений.



Почтовые сообщения


Почтовые сообщения

Объект почтового сообщения имеет следующие методы:

Метод

Описание

killThread()Помечает поток как игнорируемый.
watchThread()Помечает поток как наблюдаемый.
trash()Помечает сообщение как прочитанное и перемещает его в папку trash/мусор.

Объект почтового сообщения имеет следующие свойства:

Свойство

Описание

folderПапка, содержащая данное сообщение.
readПрочитано сообщение или нет.
priorityПриоритет сообщения.

Для перемещения почтового сообщения Вы устанавливаете свойство folder объекта сообщения. Можно использовать полный путь или синтаксис mailbox: в URL для специфицирования папки назначения.

Свойство priority можно устанавливать, используя целые числа или строки. Возможные значения:

NoneLowest

LowNormalHigh

Highest



AПочтовые Фильтры



Приложение A
Почтовые Фильтры

В этом приложении показано, как применять JavaScript для фильтрации входящей почты и новостей при использовании Netscape Messenger.

Процесс фильтрации состоит из двух этапов:

Написать функцию JavaScript для работы в качестве фильтра и поместить её в файл фильтров. Эта функция принимает один аргумент, объект сообщения, и может изменять это сообщение.

Добавить вхождения этой JavaScript-функции в файл правил/mail rules file. Ваш rules-файл может содержать несколько фильтров. Messenger применяет каждый фильтр к сообщению, пока один из них не сработает.

В приложении имеются следующие разделы:

Создание фильтра и добавление его в rules-файл

Фильтры новостей

Обращение к объекту сообщения

Отладка фильтров

Более сложный пример



B Отображение Ошибок с Помощью Консоли JavaScript



Приложение B

Отображение Ошибок с Помощью Консоли JavaScript

В этом приложении рассматривается использование консоли JavaScript для вычисления выражений и вывода пользователю сообщений об ошибках.

В приложении имеются следующие разделы:

Открытие консоли JavaScript

Вычисление выражений с помощью консоли

Вывод сообщений об ошибках на консоль

JavaScript 1.2 и более ранние версии. Консоль JavaScript отсутствует.



Шапки/Headers сообщений



Шапки/Headers сообщений

Помимо свойств, приведённых выше, объект почтового сообщения предоставляет все шапки /headers сообщения как свойства только для чтения. Так, тема сообщения может быть получена как message.subject, а список CC как message.cc. Шапки с дефисами в именах (как Resent-from) не могут быть получены с dot-синтаксисом. Запрашивайте их с использованием синтаксиса массива для значения свойства (как message["Resent-from"]).



Сообщение новостей



Сообщение новостей

Объект сообщения новостей/News Message имеет следующие методы:

Метод

Описание

killThread()Помечает поток как игнорируемый.
watchThread()Помечает поток как наблюдаемый.

Объект сообщения новостей имеет следующие свойства:

Свойство

Описание

group(Только для чтения) Группа новостей, содержащая данное сообщение.
readПрочитано сообщение или нет.
sender(Только для чтения) Отправитель сообщения.
subject(Только для чтения) Тема сообщения.



Создание фильтра и добавление его в rules-файл


Сначала нужно написать файл filters.js. Он содержит функции JavaScript, которые выполняют фильтрацию почты. Эти функции могут использовать все возможности клиентского JavaScript. Размещение этого файла зависит от платформы, как показано в следующей таблице.

Платформа

Размещение файла

Unix$(HOME)/.netscape/filters.js

где $(HOME) это директория, в которой установлен Navigator.

Windows\Program Files\Communicator\Users\<username>\Mail\filters.js
Macintoshfilters.js в корневой директории каталога Вашего профиля.

Вот пример простого файла фильтра. Он сохраняет все сообщения от my_mom в папке "FromMom" и помечает их как имеющие приоритет high. Он также высылает все сообщения из my_sister в папку trash.

// файл filters.js
function MomFilter(message) {
if (message.from.indexOf("my_mom@mothers.net") != -1) {
      message.priority = "High";
      message.folder = "mailbox:FromMom";
   }
   else if (message.subject.indexOf("my_sister@sisters.net") != -1) {
      message.trash();
   }
}

ПРИМЕЧАНИЕ: Нет способа специфицировать папку IMAP через использование синтаксиса mailbox:. Поэтому, если Вы перераспределяете что-либо с использованием IMAP, всё это будет происходить на Вашей локальной машине.

После того как функция фильтра JavaScript написана, Вы добавляете ссылку на этот фильтр в Ваш файл почтовых правил/mail rules file. Размещение rules-файла также зависит от платформы, как показано в следующей таблице.

ПлатформаРазмещение файла

Unix$(HOME)/.netscape/mailrule где $(HOME) это директория, в которой установлен Navigator.
Windows\Program Files\Communicator\Users\<username>\Mail\rules.dat
MacintoshFilter Rules в корневой директории каталога Вашего профиля.

Как правило этот файл записывается системой фильтрации Netscape Messenger'а. Если у Вас уже есть файл фильтров, добавьте в него следующие строки:


name="filterName"
enabled="yes"
type="2"
scriptName="scriptName"

где

name="filterName" Описательное имя фильтра.
enabled="yes" Использовать этот фильтр. Для отключения фильтра запишите enabled="no".
type="2" Пометить этот фильтр как фильтр JavaScript.
scriptName="scriptName" Выполняемая функция JavaScript.
Реальный ввод может быть таким:

name="Filter for Mom"
enabled="yes"
type="2"
scriptName="MomFilter"

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

Если у Вас ещё нет rule-файла почты, Вы должны будете добавить две строки вверху файла (до любых ссылок на фильтры):

version="6"
logging="no"


Вычисление выражений с помощью консоли


Окно консоли JavaScript состоит из двух фрэймов. Нижний фрэйм содержит поле javascript typein, где Вы можете вводить однострочные выражения. Вы можете использовать это поле для присвоения значений переменным, тестирования операций сравнения и выполнения математических операций.

Чтобы вычислить выражение:

Введите выражение в поле javascript typein.

Нажмите Return.

Результаты выводятся в верхнем фрэйме.

Например, Вы можете вычислить следующие выражения:

alert("hello there")// выводит диалог alert
5-2                       // выводит "3" в верхнем фрэйме
var high=100; var low=45; // создаёт две переменные
high-low;                 // выводит 55 в верхнем фрэйме



Вывод сообщений об ошибках на консоль


Если ошибочное условие JavaScript обнаружено в клиенте (например, на HTML-странице или в сообщении email), выводится диалоговое окно с описанием ошибки (например, Line 64: myVariable is not defined). Большинству пользователей эти сообщения ничего не говорят, и необходимость постоянно закрывать диалоговое окно начинает надоедать. Ошибки интересны только JavaScript-разработчикам, тестерам и особо утончённым пользователям.

Вы можете форсировать отображение ошибок JavaScript только в консоли JavaScript. Тогда, при возникновении ошибки JavaScript, сообщение о ней перенаправляется на консоль, и диалоговое окно не выводится. Поскольку консоль обычно не отображается, пользователь не получает прямых указаний на возникновении ошибок JavaScript. Если пользователь или разработчик хочет просматривать сообщения об ошибках JavaScript, он должен будет открыть консоль.

Текст сообщения об ошибке JavaScript появляется в консоли так же, как и в традиционном диалоговом окне.

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



ASCII



ASCII

American Standard Code for Information Interchange. Стандарт кодов, используемых для хранения данных на компьютере.



BLOb



BLOb

Binary large object/Большой двоичный объект. Формат двоичных/бинарных данных, хранимых в реляционной базе данных.



CGI


CGI

Common Gateway Interface. Спецификация сообщения между HTTP-сервером и программами-шлюзами на сервере. CGI это популярный интерфейс для создания серверных web-приложений на таких языках как Perl или C.



Client/клиент



client/клиент

Браузер, такой как Netscape Navigator.



Client-side/клиентский JavaScript



client-side/клиентский JavaScript

Ядро языка JavaScript плюс расширения, управляющие браузером (Navigator'ом или другим подобным web-браузером) и его DOM. Например, клиентские расширения дают приложению возможность размещать элементы на HTML-форме и реагировать на пользовательские события, такие как нажатие клавиши мыши, ввод данных и навигация по страницам. См. также core JavaScript, server-side JavaScript.



Cookie/кука



cookie/кука

Механизм хранения Navigator'ом-клиентом небольших кусков информации на клиентской машине.



CORBA



CORBA

Common Object Request Broker Architecture. Стандарт, введённый группой OMG (Object Management Group). Программа Object Request Broker (ORB), обслуживающая сообщение между объектами и распределённой компьютерной среде.



Core/ядро JavaScript


core/ядро JavaScript

Элементы, общие для клиентского и серверного JavaScript. Ядро JavaScript содержит набор основных объектов, таких как Array, Date и Math, и основной набор элементов языка, таких как операции, управляющие структуры и операторы. См. также

client-side JavaScript, server-side JavaScript.



Deprecate/не рекомендуется



deprecate/не рекомендуется

Применение данной возможности языка не рекомендуется, без удаления её из продукта. Если какая-либо возможность языка JavaScript не рекомендуется для использования, обычно предлагается альтернатива; Вы не должны больше использовать не рекомендуемые возможности, поскольку они могут быть удалены в последующих версиях.



ECMA



ECMA

European Computer Manufacturers Association. Международная ассоциация стандартов для информационных и коммуникационных систем.



ECMAScript



ECMAScript

Международный стандартизованный язык программирования на основе ядра JavaScript. Эта стандартизованная версия JavaScript работает совершенно одинаково во всех приложениях, поддерживающих этот стандарт. Компании могут использовать этот открытый стандартный язык для разработки своих собственных реализаций JavaScript. См. также core JavaScript.



External function/внешняя функция



external function/внешняя функция

Функция, определённая во внешней библиотеке, которая может использоваться в приложении JavaScript.



HTML


HTML

Hypertext Markup Language. Язык разметки, используемый для создания страниц для World Wide Web.



HTTP



HTTP

Hypertext Transfer Protocol. Протокол соединения, используемый для передачи информации web-серверами и клиентами.



IP-адрес



IP-адрес

Набор из четырёх чисел в диапазоне значений от 0 до 255, разделённых точками, который специфицирует местоположение по протоколу TCP/IP.



JavaScript console/консоль



JavaScript console/консоль

Окно, отображающее все сообщения об ошибках JavaScript и позволяющее вычислять выражения. При возникновении ошибки JavaScript, сообщение об ошибке направляется на консоль JavaScript. Вы можете специфицировать показ или подавление показа консоли JavaScript.



LiveConnect



LiveConnect

Даёт возможность коду Java и JavaScript взаимодействовать друг с другом. Из JavaScript Вы можете инстанциировать (создавать экземпляры) объектов Java и иметь доступ к их public-методам и полям. Из Java Вы можете иметь доступ к объектам, свойствам и методам JavaScript.



MIME



MIME

Multipart Internet Mail Extension. Стандарт, специфицирующий формат данных, передаваемых по Internet.



Netscape cookie protocol/протокол кук



Netscape cookie protocol/протокол кук

Формат Netscape для специфицирования параметров куки в шапке/header HTTP.



Primitive value/примитивное значение



primitive value/примитивное значение

Данные, непосредственно представленные на нижнем уровне языка. Примитивное значение в JavaScript является членом одного из следующих типов: undefined, null, Boolean, number или string. Вот примеры примитивных значений:

a=true // примитивное значение Boolean
b=42                 // примитивное значение number
c="Hello world"      // примитивное значение string
if (x==undefined) {} // примитивное значение undefined
if (x==null) {}      // примитивное значение null



Server-side/серверный JavaScript



server-side/серверный JavaScript

Ядро JavaScript плюс расширения, относящиеся только к работе JavaScript на сервере. Например, серверные расширения дают приложению возможность соединяться с реляционной БД, поддерживать существование информации между вызовами приложения, выполнять работу с файлами на сервере. См. также client-side JavaScript, core JavaScript.



Static-метод или свойство



static-метод или свойство

Метод или свойство встроенного объекта, которые не могут быть свойствами экземпляров этого объекта. Например, Вы можете инстанциировать новые экземпляры объекта Date. Некоторые методы объекта Date, такие как getHours и setDate, являются также и методами экземпляров объекта Date. Друге методы объекта Date, такие как parse и UTC, являются static/статическими, поэтому экземпляры объекта Date не имеют этих методов.



URL



URL

Universal Resource Locator. Схема адресации, используемая в World Wide Web.