Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Задачки на сообразительность (https://javascript.ru/forum/misc/9351-zadachki-na-soobrazitelnost.html)

Kolyaj 12.05.2010 11:16

Задачки на сообразительность
 
Ситуация: ваш скрипт работает в чужой страничке, на которой определены функции addEventListener/attachEvent
<html>
<head>
<script type="text/javascript">
    function addEventListener() {

    }

    function attachEvent() {

    }
</script>
</head>
</html>
Разумеется, они становятся свойствами объекта window.
Задача: повесить обработчик события resize на window.
Скажу сразу, window.onresize не подходит, ибо сильно вторгается в окружение страницы.


Вторая задача более общая. На враждебной странице может быть переопределена любая глобальная функция (encodeURIComponent, например), или метод у какого-нибудь прототипа ([].slice, например).
Задача: "добыть" оригиналы этих функций для использования их в своём скрипте.


Если кто знает решения, или быстро придумал заведомо работающие решения, просьба подождать хотя бы до вечера, пусть другие подумают :)


UPD: В первой задаче не будем учитывать attachEvent.

Gvozd 12.05.2010 11:30

[SPOILER]
буквально вчера-позавчера в одной из тем фигурировал код по этой теме
[/SPOILER]

Kolyaj 12.05.2010 11:33

Gvozd,
мне вот это сообщение напомнило _http://javascript.ru/forum/54878-post42.html . (Форум ссылку ломает)

Gvozd 12.05.2010 11:36

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

Octane 12.05.2010 13:00

Либо это просто, либо я чего-то не знаю и можно сделать еще проще :)

Kolyaj 12.05.2010 13:08

Первая очень просто, вторая чуть похитрее. Но просто, это когда знаешь ответ.

Octane 12.05.2010 13:17

Хм… у меня на обе задачи одинаковый ответ:
ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKSkuY29udGVudFdpbmRvdy5hZGRFdmVudExpc3RlbmVy

Kolyaj 12.05.2010 13:26

Octane,
на первый вопрос это уж слишком грубое решение. А на второй самое то, но не в таком виде конечно.

Skipp 12.05.2010 13:33

window.close()
Подойдёт к обеим задачам!

Kolyaj 12.05.2010 13:35

Skipp,
если уж на то пошло, окно не закроется :)


Часовой пояс GMT +3, время: 09:17.