Основы в JavaScript: События

Discussion in 'PHP' started by kravch_v, 7 Sep 2011.

  1. kravch_v

    kravch_v Member

    Joined:
    1 Sep 2011
    Messages:
    134
    Likes Received:
    43
    Reputations:
    1
    JavaScript в веб-программировании - это добавление интерактивности на страницу. Работает по принципу "пользователь действует, система реагирует".

    Бывает несколько событий. Например щелчок мышью - это самое распространенное событие.
    Без событий никуда - они везде. Движение мышкой (клик мышкой), выделение текста, нажатия кнопок и клавиш - это все события.

    Встроенные события позволяют размещать событие+их обработчики в HTML-Коде.

    Code:
    <a href="http://www.forum.antichat.ru/" onmouseover="alert('Пожалуйста, уберите мышку')" onmouseout="alert('Спасибо..')">Нажми сюда :)</a>
    
    Вы можете менять поведение вашего веб-браузера на нестандартное событие

    Code:
    <a href="http://www.xakep.ru/" onclick="alert('Низачто не пойду!'); return false;">Хакер</a>
    
    В итоге, вместо перехода на нашу страницу - наш веб-браузер просто напросто откажется переходить на данную страницу

    Если JavaScript возвращает нам "false", то наш веб-браузер не выполняет стандартное действие - это удобно для проверки данных перед отправкой формы.

    Code:
    <html>
    	<head>
    		<title>Яндекс.Поиск + JavaScript обработчик</title>
    		<script type="text/javascript">
    		function check()
    		{
    			var field = document.getElementById("text");
    			if (field.value == "")
    			{
    				alert('Пожалуйста, введите текст');
    				return false;
    			}
    			return true;
    		}
    		</script>
    	</head>
    	<body>
    		<form action = "http://yandex.ru/yandsearch?text=" onsubmit="return check()" >
    			<input type="text" id = "text" name = "text" />
    			<input type="submit" value = "Поиск" />
    		</form>
    	</body>
    </html>
    
    Если юзверь ничего не введет в нашу форму, то функция вернет false с текстом "Пожалуйста, введите текст" - соответственно, форма не отправиться.
    Внимание!!! " onsubmit="check()" " - работать откажется (инфа 100%).
    Функция выполниться, но независимо от того, что ответит наш JS - форма будет отправлена, так что используем " onsubmit="return check()" "

    Такой "способ обработки" неудобен тем, что наш JavaScript - будет разбросан по всей странице. Нам придется возиться с исходником, щелкать мышкой - что займет много времени.
    Хорошие разработчики стараются HTML и JavaScript коды разносить в разные файлы.

    В следующем способе, нам потребуется внешний JavaScript файлик и страница с DIV.

    Code:
    <html>
    	<head>
    		<title>JavaScript - Пример</title>
    		<script src="scr.js" type="text/javascript"></script>
    	</head>
    	<body onload="load_comp()">
    		<div id="div1">
    			DIV
    		</div>
    	</body>
    </html>
    
    Событие " load_comp() " - используется чтобы JavaScript не выполнялся до окончательной загрузки нашей веб-страницы

    Внутри файла scr.js поставим обработчики, меняющие цвет нашего фона div`а под курсором.

    Code:
    function over()
    {
    	this.style.background = '#f00';
    }
     
    function load_comp(){	
    	var div1 = document.getElementById('div1');
    	div1.onmouseover = over;
     
    	div1.onmouseout = function(){
    		this.style.background = '#fff';
    	}
    }
    
    Моя первая "мини-статья" была написана для тех, кто пока-что плохо знаком с JS..
    На этом все! Огромное спасибо за просмотр данной статьи, в будущем напишу про PHP и MySQL - надеюсь, что вам понравиться.

    (с) kravch_v
     
    4 people like this.
  2. AnGeI

    AnGeI Elder - Старейшина

    Joined:
    8 Dec 2008
    Messages:
    395
    Likes Received:
    79
    Reputations:
    16
    Плюсую затею, но про js можно писать и писать, например, про работу с изображениями.
     
    1 person likes this.
  3. |qbz|

    |qbz| Banned

    Joined:
    25 Dec 2009
    Messages:
    385
    Likes Received:
    169
    Reputations:
    65
    Вот линк, удобная табличка. Сам использую при поиске XSS.
     
  4. in1ernal

    in1ernal New Member

    Joined:
    23 Aug 2011
    Messages:
    5
    Likes Received:
    1
    Reputations:
    -5
    В целом nice, но JS все же желательно в конце страницы а не где-то посередине. Плюсик
     
  5. ShkiperLol

    ShkiperLol Banned

    Joined:
    17 Apr 2010
    Messages:
    182
    Likes Received:
    1
    Reputations:
    0

    Возможно, ли сделать load в ссылке, например, есть xss в линке как сделать, чтоб она срабатывала как в <img onload ??
     
  6. |qbz|

    |qbz| Banned

    Joined:
    25 Dec 2009
    Messages:
    385
    Likes Received:
    169
    Reputations:
    65
    <a href="http://microsoft.com/" onMouseOver="alert(1)" style="padding:10000px;">link</a>