колонтитул в word 2007, 0000002111
Cookies - механизм управления обменом данных в JavaScript - 1Волшебные ключики, или cookies, не являются полями формы, но, тем не менее, отойдя от строгого рассмотрения иерархии объектов JavaScript, мы уделим им немного внимания, как одному из механизмов управления обменом данных. Основная функция cookie — поддержка сеанса работы между клиентом (браузером) и сервером. cookie — это небольшой фрагмент текста, который передается от сервера браузеру и потом может быть возвращен обратно. Подробно о cookie рассказано в «Спецификации Cookie», которую можно найти в главе «Дополнения». Программа на JavaScript способна прочитать выставленное значение cookie и даже изменить его. Для этой цели используют свойство объекта DOCUMENT — cookie:
<FORM> <INPUT TYPE=button VALUE="Показать Cookies" onClick="window.alert(window.document.cookie);"> </FORM>
function asign() { document.cookie="n1=3"; window.alert(document.cookie); } ... <FORM> <INPUT TYPE=button VALUE="Изменить n1" onClick="asign()"> </FORM> Наконец, cookie можно удалить. Если быть более точным — деактивировать, указав время его действия:
function change_cookies() { a = new Array(); c = new Date(); a = document.cookie.split(';'); document.cookie=a[0]+"; expires="+c.toGMTString()+";"; window.alert(document.cookie); } ... <FORM> <INPUT TYPE=button VALUE="delete cookies" onClick="change_cookies()"> </FORM> Как мы уже знаем, функции в JavaScript используются для многократного выполнения одной и той же задачи. До сих пор функции всегда вызывались вручную с помощью скобок: myFunction(). Что, если потребуется вызвать функцию, когда пользователь выполняет определенную задачу? В JavaScript можно соединить функцию практически с любым событием, которое может порождать пользователь. Давайте посмотрим это в действии и напишем функцию, которая подсчитывает, сколько раз пользователь щелкнул на странице.
<script type="text/javascript"> var clickCount = 0; function documentClick(){ document.getElementById('clicked').value = ++clickCount; } document.onclick = documentClick; </script> onfocus="this.blur();" value="0"> раз. Вы щелкнули на этой странице раз. В предыдущей лекции оператор ++ был применен только после переменной, как в случае "clickCount". Однако в данном примере оператор ++ используется перед переменной. В первом примере "clickCount", единица добавляется к переменной clickCount после чтения ее значения. В случае "clickCount" единица добавляется к переменной clickCount перед чтением ее значения. Так как в этом примере переменной clickCount в начале присваивается значение 0, то единицу к ней необходимо добавлять до задания значения поля ввода, поэтому использована запись "clickCount". Предыдущий пример может показаться достаточно знакомым. Так же, как и раньше, определяется переменная и функция. Изменение состоит в том, что вместо вызова функции documentClick() код содержит указание, что функция должна выполняться всякий раз, когда пользователь щелкает на документе. "document.onclick " связывает функцию с событием документа onclick ("при щелчке"). Существует множество событий подобных "onclick «. Мы познакомимся с некоторыми из них, но наиболее распространенными являются: onclick, onload, onblur, onfocus, onchange, onmouseover, onmouseout и onmousemove. Функцию можно связать с событиями любого объекта, такого, как изображение или поле ввода, а не только документа. Например, события onmouseover и onmouseout используются обычно с изображениями для создания эффекта изменения. Можно также заметить, что ссылка на поле ввода делается другим образом. Ранее говорилось, что для указания поля необходимо использовать "document.forms.имяФормы.elements.имяПоляВвода «. Хотя этот способ прекрасно работает, это не всегда необходимо. В данном примере поле ввода действует просто как счетчик. Оно не находится внутри формы, и нам это и не нужно. Поэтому мы задаем для поля некоторый ID (идентификатор): id="clicked". ID можно использовать для ссылки на любой объект на странице. ID должен быть уникальным на странице, поэтому если имеется 5 полей ввода с ID, то все ID должны быть различны, даже если они только имеют вид "input1"-->"input5 «. Поскольку это поле ввода используется как счетчик, то нежелательно, чтобы пользователи щелкали на нем и изменяли его значение. Здесь на помощь приходит другое связывание, "onfocus ", которое срабатывает, когда курсор перемещается на объект. Поэтому при щелчке на поле ввода или при перемещении на поле ввода с помощью клавиши Tab вызывается "onfocus «. Событие onfocus имеет очень короткий код, но он также очень важен. В нем появляется ключевое слово "this", которое важно понимать в JavaScript. Ключевое слово "this" указывает на тот объект, на котором выполняется код. В данном примере "this" указывает на поле ввода. Выражение «this.blur() " «размывает» поле ввода, другими словами, заставляет его терять фокус ввода. Так как это происходит, как только пользователь активизирует поле ввода, то это делает «невозможным» изменение данных. Если указатель "this" используется в функции, то он указывает на саму функцию. Если "this" используется в коде JavaScript вне функции, то он указывает на объект окна. Наиболее часто "this" используется для изменения свойства текущего объекта, как в примере выше, или для передачи текущего объекта функции. Давайте посмотрим на другой пример:
<script type="text/javascript"> function showValue(obj){ alert('You Clicked On ' + obj.value); } </script> <input type="radio" name="fruit" onclick="showValue(this);" Можно видеть, что событие onclick для каждой из этих радио-кнопок одинаково. Однако, если щелкнуть на каждой из них, то будут получены разные сообщения. Это связано с использованием "this". Так как "this" указывает на каждую отдельную радио-кнопку, то каждая радио-кнопка передается в функцию "showValue " по отдельности. Вернемся к функциям и рассмотрим передачу функции аргументов. В предыдущем примере "obj" является аргументом. Предполагается, что "obj" содержит указатель на поле ввода, на котором был произведен щелчок. В функцию можно передавать любое количество аргументов. Если потребуется 10 аргументов, то функция будет выглядеть следующим образом:
function myFunction(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, В JavaScript не нужно передавать все 10 аргументов в функцию, которая объявлена с 10 аргументами. Если передать только первые 3, то функция будет иметь только 3 определенных аргумента. Это необходимо учитывать при написании функций. Например, можно написать функцию, которой всегда требуются 3 первых аргумента, но следующие 7 являются необязательными:
function myFunction(arg1, arg2, arg3, arg4, arg5, arg6, arg7, Поэтому, если arg4 не был передан в приведенном выше примере, то он является "undefined" и тело оператора if не выполняется. колонтитулы в word 2007, 000000211111
Рекомендуем в повседневной деятельности:
|