Как вызвать несколько функций javascript в событии onload окна?вызов функции Javascript
Для Ex,
window.onload=MyFunc(); //Single Function
Но что, если есть больше чем один функции позвонить на событии загрузки окна ...
Как вызвать несколько функций javascript в событии onload окна?вызов функции Javascript
Для Ex,
window.onload=MyFunc(); //Single Function
Но что, если есть больше чем один функции позвонить на событии загрузки окна ...
завернуть.
window.onload = function() { MyFunc(); MyOtherFunc(); }
Согласитесь с этим; – 2010-11-02 07:03:29
Или вы могли бы связать функции в случае нагрузки окна:
window.addEventListener("load", MyFunction, false);
window.addEventListener("load", MyOtherFunction, false);
Для IE наследия вам может понадобиться использовать метод attachEvent:
window.attachEvent("load", MyFunction);
window.attachEvent("load", MyOtherFunction);
Проблема с этим подходом является что порядок выполнения функций не может считаться.
Конечно, для IE <9 потребуется, конечно, резервный 'attachEvent'. – bobince
Почему бы не иметь старый школьный способ иметь столько вызовов функций внутри одной функции, вызванной при загрузке страницы? window.addEventListener ("load", Foo, false);
, где Foo вызывает все необходимые функции. Таким образом, вы можете контролировать порядок и возвращать значения, если это необходимо.
Вот образец кусок, который бы объяснить, как:
// create an array that will contain all
// your functions that you would like to
// call on page load
var pageOnLoadEvents = [];
// Add one or more functions in pageOnLoadEvents array
pageOnLoadEvents.push(function() { alert("Hello!"); })
pageOnLoadEvents.push(function() { alert("How are you?"); })
// This will call when your page will load
window.onload = function() {
// Loop through each index of pageOnLoadEvents
for(var index = 0; index < pageOnLoadEvents.length; index++) {
// '()' brackets in the end tell them to make a call
// If you don't include '()' at the end this will
// suspect as a object as in JavaScript functions
// are first-class objects.
// document.write(pageOnLoadEvents[index].toString()); // treat as object
pageOnLoadEvents[index]();
}
}
выше образец пытался быть простым, чтобы дать вам объяснение на ваш вопрос. Тем не менее, есть хорошее объяснение Simon Willison’s Weblog, он писал:
функцияfunction addLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
} else {
window.onload = function() {
if (oldonload) {
oldonload();
}
func();
}
}
}
addLoadEvent(nameOfSomeFunctionToRunOnPageLoad);
addLoadEvent(function() {
/* more code to run on page load */
});
addLoadEvent принимает в качестве аргумента другую функцию, которая должна быть выполнена после загрузки страницы. В отличие от назначения непосредственно window.onload, функция добавляет событие таким образом, что любые ранее добавленные функции нагрузки будут выполнены в первую очередь. . Read more.
Это так или иначе, если 'MyFunc' не возвращает объект функции. Помещение скобок после 'MyFunc' означает, что вы вызываете его немедленно, а значение, возвращаемое' MyFunc', будет присвоено 'window.onload'. Я полагаю, вы имели в виду 'window.onload = MyFunc'. –