Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основи мови JavaScript.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.04 Mб
Скачать

2.8. Умонтовані функції

У цьому поділі перераховані декілька корисних умонтованих функцій, що можна використовувати в сценаріях JavaScript.

eval

Функція eval призначена для перетворення текстового рядка в чисельне значення. Через єдиний параметр вона одержує текстовий рядок і обчисляє її як вираження мови JavaScript. Функція повертає результат обчислення:

vаг nValue = Eval(szStr);

parseInt

Ця функція призначена для перетворення текстового рядка в целочисленное значення. Рядок передатися функції через параметр:

var nValue = parseInt(szStr);

parseFloat

Функція parseFloat намагається перетворити текстовий рядок у число з плаваючою точкою. Текстовий рядок передається цієї функції через перший параметр, а підстава числення - через другий:

var nFloat = parseFloat(szStr, nRadix);

escape

За допомогою функції escape сценарій JavaScript може закодировать текстовий рядок із застосуванням URL-кодировки. У цій кодировке спеціальні символи, такі, як "прогалина" або "табуляция", преобразовываются до такого виду: %ХХ, де XX - шестнадцатеричный код символу. Приклад використання цієї функції:

var szURL = escape(szStr);

unescape

Функція unescape, виконує дію, прямо протилежне дії функції unescape - перекодирует рядок із URL-кодировки в звичайний текстовий рядок:

var szStr = unescape(szURL);

2.9. Плавна зміна цвіту фона документа html

При перегляді сторінки деяких серверів Web, можна звернути увагу, що цвіт їхнього фона починає плавно змінюватися відразу після завантаження, становлячись поступово светлее або, навпаки, темнее. Аналогічний ефект може бути отриманий не тільки для цвіту фона, але і для цвіту тексту, а також гипертекстовых посилань. Можна зробити, наприклад, так, щоб рядки тексту поступово виявлялися на фоні сторінки або зникали (щоб відвідувач не встиг їх прочитати).

Складний на перший погляд ефект досягається надзвичайно просто: зміною властивості bgColor об'єкта document. У листинге 2.10 приведений приклад сценарію, що після завантаження документа HTML у вікно браузера змінює цвіт його фона з білого на чорний.

Листинг 2.10. Файл chapter2/ChangeBkg/ChangeBkg. html

<HTML>

<HEAD>

<TITLE>Color Links</TITLE>

<SCRIPT LANGUAGE="JavaScript">

<!--

var nRed = 255;

var nGreen = 255;

var nBlue = 255;

function colorShift()

{

var cmd = "colorShift()";

document.bgColor = "#" +

dec2hex(nRed) +

dec2hex(nGreen) +

dec2hex(nBlue);

if(nRed > 0)

{

nRed -= 10;

nGreen -= 10;

nBlue -= 10;

}

timer = window.setTimeout(cmd, 50);

}

function dec2hex(nDec)

{

var szHexTable = "0123456789ABCDEF";

var szResult = "";

var szBuf = "";

var nRem = 0;

var bNegative = false;

if(nDec < 0)

{

bNegative=true;

nDec = -nDec;

}

nTmp = nDec;

while(true)

{

nRem = nTmp % 16;

nTmp = nTmp / 16;

if(Math.floor(nTmp) < 16)

break;

szBuf = szHexTable.charAt(nRem);

szResult = szBuf.concat(szResult);

}

szBuf = szHexTable.charAt(nRem);

szResult = szBuf.concat(szResult);

if(Math.floor (nTmp) != 0)

{

szBuf = szHexTable.charAt(Math.floor(nTmp));

szResult = szBuf.concat(szResult);

}

if(bNegative == true)

return("-" + szResult);

else

return szResult;

}

//-->

</SCRIPT>

</HEAD>

<BODY BGCOLOR=white>

<Н1>Зміна колірного оформлення</Н1>

<Р>Відвідайте ці сервери:

<Р><А HREF="http: //www. g las net.ru/~frolov/index.htiTil">Haшa домашня сторінка</А>

<P><A HREF="http://www. auramedia.ru">Каталог програм Auramedia</A>

<P><A HREF="http://www.microsoft.com/java/">Cтpaница серверу Microsoft про Java</A>

<P><A HREF="ColorLinks.html#Локальный роздів">Локальний поділ</А>

<HR>

<H1><A NАМЕ="Локальний поділ">Локальний поділ</А></Н1>

<Р>Цей локальньй роздів ви можете переглянути, навіть якщо ваш комп'ютер не залучений до Internet

<SCRIPT LANGUAGE="JavaScript">

<!--

colorShift();

//-->

</SCRIPT>

</BODY>

</HTML>

Робота сценарію починається після завантаження документа з виклику функції colorShift. Цей виклик розташований наприкінці області тіла документа HTML.

Функція поступово зменшує значення червоної, зеленої і блакитний компоненти цвіту. Початкові значення цих компонент зберігаються в глобальних перемінних nRed, nGreen і nBlue:

var nRed =255;

var nGreen = 255;

var nBlue = 255;

Значення цвіту фона формується в такий спосіб:

document. bgColor = "#" + dec2hex(nRed) + dec2hex(nGreen) + dec2hex (nBlue);

Тут за допомогою функції dec2hex преобразовывается десяткове значення колірний компоненти в шестнадцатеричное. Ця функція буде описана докладно пізніше в поділі "Шестнадцатеричный калькулятор" гл. 3.

Далі після установки цвіту фона проверяется значення червоні колірний компоненти, і, якщо воно більше нуля, зменшується і воно, і значення інший колірних компонент на 10:

if(nRed > 0)

{

nRed -= 10;

nGreen -= 10;

nBlue -= 10;

}

Для того щоб функція colorShift визивалася періодично, використовується метод setTimeout викликом його наприкінці функції:

var cmd = "colorShift()";

timer = window. setTimeout(cmd, 50);

У результаті функція colorShift буде визиватися кожні 50 мс.