Смешной Javascript
От: anvaka Украина Yasiv
Дата: 22.01.07 01:53
Оценка: 38 (15) :))) :))

Трюки с Javascript.

То что ниже, скорее всего, относится к КУ косвенно (just for fun), и кроме того может быть опасно. Поэтому настоятельно рекомендую не принимать все близко к сердцу.

Здесь вы найдете:
1. Как вскружить рисунки на странице.
2. Как отредактировать страницу.
3. Как поставить ссылку на оценку своего rsdn-сообщения прямо в свое сообщение (не будучи экстрасенсом).

В основе всех трюков лежит простая техника: ввод в браузере в строку адреса слова "javascript:" дает доступ пользователю к выполнению клиентских скриптов.


1. Для начала классика
Автор: Ael
Дата: 22.09.06
. Следующий код приводит в крутящийся восторг все рисунки, обнаруженные на странице :

javascript:R=0; x1=.1; y1=.05; x2=.25; y2=.24; x3=1.6; y3=.24; x4=300; y4=200; x5=300; y5=200; DI=document.images; DIL=DI.length; function A(){for(i=0; i<DIL; i++){DIS=DI[ i ].style; DIS.position='absolute'; DIS.left=Math.sin(R*x1+i*x2+x3)*x4+x5; DIS.top=Math.cos(R*y1+i*y2+y3)*y4+y5}R++}setInterval('A()',5); void(0);


Проверим на странице со смайликами : Скрпируйте код, кликните сюда, и в строке адреса вставьте код. Жмем Enter и наблюдаем за танцем кргулолицых.

В этом классическом примере есть место индивидуальности. Например, заставить летать не рисунки, а ссылки (чем не леталки?):

javascript:R=0; x1=.1; y1=.05; x2=.25; y2=.24; x3=1.6; y3=.24; x4=300; y4=200; x5=300; y5=200; DI=document.links; DIL=DI.length; function A(){for(i=0; i<DIL; i++){DIS=DI[ i ].style; DIS.position='absolute'; DIS.left=Math.sin(R*x1+i*x2+x3)*x4+x5; DIS.top=Math.cos(R*y1+i*y2+y3)*y4+y5}R++}setInterval('A()',5); void(0);


Для экстремалов можно посоветовать document.all


2. Редактирование страницы.

Это может быть настоящим тестом для security сайта с одной стороны, и удобной фичей для сайтов с огромным количеством нежелательных баннеров. Правда, скорее это все же забава, чем средство. Итак:

javascript:document.body.contentEditable='true'; document.designMode='on'; void(0);


Если захотите отредактировать какой-то из фреймов здесь, на РСДНе, код придется немного изменить:

javascript:frames[1].document.body.contentEditable='true'; frames[1].document.designMode='on'; void(0);


Обратно выключается это инвертированием оператора и режима:

javascript:document.body.contentEditable='false'; document.designMode='off'; void(0);


До возможного похода в Баню, хотел бы напомнить, что редактирование контента проходит только на стороне клиента и существенной угрозы со стороны злоумшленников, через эту лазейку, ждать не стоит


3. Ссылки на оценки из своего поста.

Не знаю, зачем это может понадобиться... Как и не уверен, что это всегда будет работать (потестировать не удалось нормально — мои извинения)

javascript:str=document.referrer;str=str.match(/mid=\d+/);if(str!=null){str="http://www.rsdn.ru/Forum/Private/Rate.aspx?"+str+"&amp;rate=3"; window.location=str;} else window.location=document.referrer; javascript:str=document.referrer;str=str.match(/mid=\d+/);if(str!=null){str="http://www.rsdn.ru/Forum/Private/Rate.aspx?"+str+"&amp;rate=-2"; window.location=str;} else window.location=document.referrer;

Ссылка на самого себя.

Вся соль в document.referrer + regexp . Адрес ссылки на тройку:

javascript:str=document.referrer;str=str.match(/mid=\d+/);if(str!=null){str="http://www.rsdn.ru/Forum/Private/Rate.aspx?"+str+"&rate=3"; window.location=str;} else window.location=document.referrer;


Ну вот и все. Пока.

Удачи
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.