Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Как совместить window.onload от 2 скриптов? (https://javascript.ru/forum/events/10383-kak-sovmestit-window-onload-ot-2-skriptov.html)

reserved100 01.07.2010 17:26

Как совместить window.onload от 2 скриптов?
 
Такая проблема, два скрипта на странице используют дополнительно window.onload -
(window.onload = function() {
.......
})
соответственно срабатывает только тот, что прописан ниже. Нельзя ли как-нибудь совместить их, чтобы сработали обе функции?

Kolyaj 01.07.2010 17:29

Переписать. addEventListener/attachEvent

reserved100 01.07.2010 17:48

Извините, ничего не понял, что переписать?

Я пробовал такой вариант, нашел в интернете

window.onload = func;
func2.prev = window.onload;
window.onload = func2;

function func() {
onload от одного скрипта
}

function func2() {
onload от второго скрипта
this.onload.prev();
}

Но срабатывает только 1 функция onload, которую я прописал тут - function func2() {
onload от второго скрипта
this.onload.prev();

exec 01.07.2010 18:02

http://javascript.ru/tutorial/events/comparison

chippolino 01.07.2010 20:53

Это имеется ввиду?
window.onload = (function(){
	func1();
	func2();
});

Yamazl 09.07.2010 16:39

Когда хочется добавить пару своих маленьких функций в событие onload действительно легче сделать как chippolino, чем добавлять обработчики кросбраузерно как в http://javascript.ru/tutorial/events/crossbrowser . Вот когда дорастут скрипты до библиотеки тогда можно и о кросб. добавлении подумать.

Kolyaj 09.07.2010 16:47

Yamazl,
вы так об этом говорите, будто использование addEventListener/attachEvent что-то сложное и требующее фреймворков.

Yamazl 09.07.2010 17:13

Kolyaj, Упорно углубляюсь в js примерно неделю, поэтому addEventListener/attachEvent в кросбраузерном решении в 111 строчек для меня хоть и посильно, но: при добавлении функции в 15 строчек в событие можно обойтись и как chippolino.

У меня есть плохая привычка — не использовать сторонние скрипты, пока до глубины души не пойму что в них происходит. Делаю сайты без jQuery и подобных и php движек свой... Знаю, идиот.

А addEventListener/attachEvent я использовать БУДУ, попозже, чрезе недельку.

Ну что мне ответить, нет, не сложное, сам использовать буду. Просто если человек совсем начинающий можно "обойти" как chippolino, пусть криво зато работает везде.

Kolyaj 09.07.2010 17:42

Функция кроссбраузерного добавления обработчика событий занимает 4 строки. А можно и в одну уложиться. Но это для эстетов :)
node[/*@cc_on'attachEvent'||@*/'addEventListener'](/*@cc_on'on'+@*/'click', myfunction, false);


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