Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Параметры в пользовательских функциях




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

Код может быть, например, таким:

<HTML>

<HEAD>

<TITLE> Приветствие в отдельном окне </TITLE>

<SCRIPT language="JavaScript">

<!—

function openWindow2 (WindWidth, WindHeight,

imageType, imageName, imageWidth, imageHeight,

altwindname, alttext, posLeft, posTop) {

var frame1 = window.open ("", "frame1", "width="+WindWidth+",

height="+WindHeight+", copyhistory=0, directories=0,

height=500, location=yes, menubar=0, scrollbars=yes,

status=0, toolbar=0, left="+posLeft+", top="+posTop);

document.write('<P>Подпрограмма вызвана!</P>');

frame1.document.open();

frame1.document.write ('<html> <title>'+altwindname+'</title> <body bgcolor="BLUE"

text="YELLOW" leftmargin="0" topmargin="0" marginheight="0"

marginwidth="0" onReset="self.close()">');

frame1.document.write ('<img src="'+imageName+'" width='+imageWidth+'

height='+imageHeight+'border=0 vspace=0 hsapce=0 alt="'+alttext+'">');

if (imageType == "swf") {

frame1.document.write('<P>обработка параметра... '+imageType);

<!--... выполнение действий, определенных пользователем -->

}

else {

frame1.document.write ('<P>неизвестный параметр!');

<!--... выполнение действий, определенных пользователем -->

}

document.write('<P>Этот текст в первом окне!</P>');

frame1.document.write('<P>А этот текст во втором (новом) окне!</P>');

frame1.document.write('</body></html>');

frame1.document.close();

frame1.focus();

}

//-->

</SCRIPT>

</HEAD>

<BODY bgcolor="#FFFFF0" marginwidth=0 marginheight=0 topmargin=0

leftmargin=0 text="#000000" link="#000000">

<A href="#" onClick="openWindow2 (500, 400, 'swf', 'IMAGE/ABC.GIF',

120, 100, 'Окно 2', 'С днем рождения, программер!', 0, 0)";>

<NOSCRIPT>

<A href="program2.htm" target="_new">

</NOSCRIPT>

<img src="image/abc.gif" width=80 height=50 border=0

vspace=0 hsapce=0 alt "С Днем рождения, программер!">

</A>

<BR> <BR>

</SCRIPT>

</BODY>

</HTML>

По щелчку на картинке (или надписи, если графика отключена) вызывается функция openWindow2(), которая формирует новое окно размером 500 * 400, открывает его и печатает текстовое сообщение. В качестве параметров мы передаем в подпрограмму: ширину и высоту окна в пикселях; параметр swf, в зависимости от значения которого выполняется код по одному из определенных в программе условий; название картинки (с указанием пути), которая появится в новом окне (abc.gif); размеры картинки (мы растянем ее до 120 * 100); название открываемого окна (Окно 2); текст, который будет отображаться при отключенной графике вместо картинки (С днем рождения, программер!); начальные смещения нового окна (0,0).

Оператор сравнения == «решает», какой код выполнять. В нашем случае напечатается строка «обработка параметра...».

Конечно, не помешало бы добавить кнопку закрытия нового окна. Для этого можно воспользоваться рассмотренным выше кодом. Просто вставьте его в frame1.document.write() и разместите в функции openWindow2 между строками frame1.document.write ('<P>А этот текст во втором (новом) окне!'); и frame1.document.write ('</body></html>');. Сам код будет выглядеть так

frame1.document.write ('<CENTER> <FORM> <INPUT type="button" value="закрыть" onClick="window.close()"> </FORM> </CENTER>');

frame1.document.write('<NOSCRIPT>');

frame1.document.write ('<I>Используйте кнопку "Возврат"/"BACK" вашего браузера для возврата на предыдущую страницу.</I>’);

frame1.document.write ('</NOSCRIPT> <BR clear="all">');

В приведенном примере функция получает параметры, но ничего не возвращает. Рассмотрим фрагмент кода другой функции, которая получает три параметра, производит вычисления по заданной формуле и возвращает результат:

<HTML>

<HEAD>

<SCRIPT language="JavaScript">

<!—

function calculate_something(a,b,c) {

var z1 = (a+b+c)*5; // 300

var z2 = (a*b*c)+5; // 6005

<!--... выполнение действий, определенных пользователем -->

return (z1+z2); // 6305

}

//-->

</SCRIPT>

</HEAD>

<BODY bgcolor="#FFFFF0" text="#000000">

<SCRIPT language="JavaScript">

var res = calculate_something(10,20,30)*10;

document.write ("<P> Результат: " + res); // печатаем вычисленное значение (63050)

</SCRIPT>

</BODY>

</HTML>

Как видим, код довольно простой. Функции передаются три числа и вычисляется некоторое новое значение, которое возвращается вызывающей программе. Результат присваивается переменной res и выводится на экран.

 

Контрольные вопросы:

1. С чем можно связать выполнение сценария?

2. Как работают onMouseOver и onMouseOut?

3. Как работает функция openWindow2()?

 

Домашнее задание:

Подготовить рефераты по темам «Скрипты для защиты информации», «Скрипты подсказок и комментариев»

 

 





Поделиться с друзьями:


Дата добавления: 2014-12-23; Просмотров: 335; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.