|
Программирование >> Руководство по созданию web приложений
Здесь parent ссылается на объект, который является родительским по отношению кдокументу HTML, содержащему сценарий. В данном случае это окно, в котором отображаются все наши фреймы. Для чтения содержимого поля decValue применяется аналогичная техника: szOlcl = parent, riainpage.cloouient. fpris[ii],clec¥aiije. value; Обратите внимание, что для текстового поля hexValue мы i обработчик событий onFocus. Он получает управление, когда пользователь передает полю фокус ввода. Задача обработчика заключается в том, чтобы снова фокус ввода, предотвратив непосредственное редактирование числа пользователем. Теперь о том, как выполняется ввод преобразуемых десятичных чисел. С каждой из кнопок, связанной с вводом десятичного числа, связан обработчик события опСИск, вызывающий функцию , например; INPUT TrPE= Duttori ШЕ=3- VALUE= 3 , Этой функции передаются два параметра - нажатая кнопка (как объект класса button) и форма, в которой эта кнопка находится: function putNuiaerfbtn, form) I var szOld = ; var = (cm, стр.) Форма определена следующим образом: <form <table> SI2E= 20 ijnFot-ys= tili6.blijr(); > <t </bx/tdxtd> </t!j></tr> </form> Для поля исходного десятичного числа при помощи параметра NAME мы задали имя cJecValijti Utijv результата называется heKValue. Эти имена используются сценарием JavaScript для адресации наших полей. Документ toc.html (листинг 2-13) содержит форму с кнопками и функции сценария. Листинг 2-13 Вы найдете в файле ch§2/Converterftoc,litml на прилагаемом к книге компакт-диске. Рассмотрим работу -- :в нашем легятнию fiiecTiia;i,HrtrepH4iioM нрсьГи разователе. особенность этого приложения - то, что поля для ввода и отображения преобразуемых чисел располагаются в разных документах HTML, загруженных в отдельные фреймы. Для того чтобы ... ноля hexValue и decValue, мы ссыла- емся на форму, расположенную внутри фрейма ; : = falst; . : ,: value; . . = nCurrent; Задача функции pytlluiber - ииил числа и его отображение в двух текстовых полях, расположенныхв верхней части калькулятора: function pitiymbeiihtn,fori) var szOld = ; var szNew if(DNeiii(Hai parent i.cloeuient.foris[0].bexValuB.¥alae = parent i a. tioeuient. тогвз[0]. decValue. valoe = ; bNewNul : I alse; szOld szNew . :: , nCurriMU : . , i.-. naren : - .alue.vBlye = nCurrent; В самом начале своей работы функция putNumber проверяет двоичную переменную пеипишЬег. Если ее значение равно true, пользователь может ввести первую цифру нового числа, в этом случае функция putNumber обнуляет содержимое текстовых полей hexValue и а а также устанавливает значение newnumber, равное false. Далее функция проставляет пользователем цифру перед перемен- ной szOld, равной текущему .; . .. .-из поля decValue. При этом она вызывает из класса String метод concat, предназначенный для слияния (конкатенации) строк. Па следующем этапе текущее :яшче11не вычисляется функцией eval. Эта функция пытается интерпретировать текстовую строку, переданную ей в качестве параметра, как арифметическое выражение, возвращая результат интерпретации в виде численного значения. Результат сохраняется в переменной nCurrent и отображается в текстовом поле decValue. Функция getResult, выполняющая преобразо- вание, получает исходное число из поля decValue и - - функцииdec2aex преобразования записывается затем в поле hexValue: function legylt(fori) t parent.matnpage- docianenI. fariis[0]- tajxValae value = iiripage, aocLienr, ffirBsLO]. decValue va] ue); Рассмотрим функцию clecZhex, преобразующую десятичное число в iiicrrna/i Результат преобразования эта функция возвращает в виде текстовой строки: fuiiH ii . var 8гН9дТ1Ыв= 012345в789йВСР1:Г- : var - var . и; war bNegative=false; if(nD#c < 0) { bMefatlve-t-ue: nDec = -nDec; iflip=nOec; whileCtrue) I nRem = riTip i 16; pTi-p = iiTmp / 16: ,1, < 16) break; szluf-saHexTaole. cfiarAtCnRem): szResult = szByf.concat(8zFle8ujt); nTmp = Hath. tioor{nTiip/; szResult = : != 0) szei.if=sii . ip); szResult = == true) return (-- + szResult); else return szResult; В начале своей работы функция dec2hex проверяет знак числа. Отрицательные числа преобразуются в положительные. При этом в переменную bNegative true.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |