2013-12-24 3 views
0

Я хотел бы добавить функцию window.onload, чтобы она выполнялась после того, как все загружается. Я попытался сделать:Присоединение событий к window.onload

window.addEventListener('load', myFunction ,false); 
window.onload = myFunction; 
window.attachEvent('onload', myFunction); (this way does not work on Chrome) 

Что происходит со мной в том, что эта функция, глядя на консоли в Chrome (вкладка Network) выполняется перед window.onload (до красной линии). Я знаю это, потому что myFunction пытается загрузить удаленный файл javascript, и этот файл загружается до красной строки.

Я также пытался что-то более простое:

$(function() { 
    console.log("1111111"); 
}); 
window.onload=console.log("222222); 

Выход что: 22222222222 11111111111

Почему ??? Первая часть должна выполняться после DomContentLoaded, а вторая после window.load isnt? Так почему это происходит?

+1

Вы вызываете 'console.log (« 222222 »);' немедленно, поэтому, конечно, он будет запускаться до запуска события DOMContentLoaded. Оберните его анонимной функцией, и он будет работать так, как вы ожидаете. – Blender

+0

вы имеете в виду что-то вроде: window.onload = function() {console.log ("ssssss")}(); Я пробовал это, и та же проблема, сначала он выводит 22222, а затем 111111 –

+2

Нет, у этого еще есть * точно * та же проблема. Вы вызываете анонимную функцию немедленно. Избавьтесь от этих '()' s в конце. – Blender

ответ

-1
// This way does not work in Chrome 

Это потому, что вы используете onload вместо load.

+0

Разве вас не беспокоит 'attachEvent()' вместо 'addEventListener()'? На самом деле, это способ добавить слушателей событий к oldIEs. – Pavlo

+0

@Pavlo Вы абсолютно правы - добавьте ответ! – Barney

+0

Как я понимаю, автор попытался это разобраться, поэтому это не проблема. – Pavlo

Смежные вопросы