Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Дополнение функции (https://javascript.ru/forum/misc/20757-dopolnenie-funkcii.html)

Geddar 16.08.2011 15:39

Дополнение функции
 
Имеется функция выполняемая onload, требуется при загрузке внешних *.js дполнять её содежимое тем что в них указано. Как-то делал такое, но каким-то не самым гуманным методом =)
Как реализовать такое?
идя в том что сайт состоит из блоков, написаны (пишется) на php. Блоки имеют свой функционал на javascript, причём некоторые вещи нужно инициализировать по событию onload, которое уже занято основным скриптом страницы

Severtain 16.08.2011 15:57

Ммм.. что?! Вызывать функцией то что есть в этих файлах нельзя? или я что-то не понял!

Можно пример! ? Или просто поподробней!

melky 16.08.2011 16:00

чтобы не было "занято" можно цеплять обработчики через addEventListener. таким образом можно понацеплять over 9000 обработчиков onload. конечно, там событие другое.. не онлоад

.. для ie, разумеется, используйте attachEvent

Geddar 16.08.2011 16:58

melky, спасибо. То что нужно
window.addEventListener('load',secondload,false)|| window.attachEvent('onload',secondload);
Правда на IE проверить не могу, т.к. сижу на linux

melky 16.08.2011 18:16

Цитата:

Сообщение от Geddar (Сообщение 120898)
Правда на IE проверить не могу, т.к. сижу на linux

в wine он есть и устанавливается сам

Geddar 16.08.2011 18:52

стоит, но это подобие. IE в wine использует Gecko, а виндовский Trident. В общем это разные вещи

melky 16.08.2011 19:50

Цитата:

Сообщение от Geddar (Сообщение 120922)
стоит, но это подобие. IE в wine использует Gecko, а виндовский Trident. В общем это разные вещи

аа. да, этого я не учел :)

ну тогда... виртуалка в помощь

Sweet 16.08.2011 20:35

Цитата:

Сообщение от Geddar
window.addEventListener('load',secondload,false)|| window.attachEvent('onload',secondload);

Такой код вызовет ошибку типа "undefined is not a function", eсли у window нет метода addEventListener.

Geddar 17.08.2011 00:54

Забыл сказать, что на сайте есть jquery (имхо, его пора добавлять в сами браузеры).
Jquery, как раз добавляет обработчики, а не заменяет функции.
$(window).load(secondload);

Вот собственно решение, там сам подключит соответствующим образом.
Затупил на ровном месте, видно мозг перенапряг )) нужно сменить образ деятельности на денёк...

kobezzza 17.08.2011 00:59

Цитата:

Сообщение от Geddar (Сообщение 120983)
Забыл сказать, что на сайте есть jquery (имхо, его пора добавлять в сами браузеры).

Этой строчкой ты вызвал дикий батхёрт у всех пользователей альтернативных фреймворков:)
Ничего не имею против квери, более того - сам юзаю её активно, но такое бы решение было через чур:)


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