Перехватить событие javascript для загрузки страницы - PullRequest
22 голосов
/ 03 июня 2009

У меня aspx, у которого есть следующая функция javascript, запускаемая во время события onload тела.

<body onload="startClock();">

Однако я настраиваю aspx на использование главной страницы, поэтому тег body больше не существует в aspx. Как мне зарегистрировать функцию startClock, которая запускается при нажатии на страницу, и при этом использовать мастер-страницу?

Ответы [ 5 ]

35 голосов
/ 03 июня 2009

Если вы не хотите явно назначать window.onload или использовать инфраструктуру, подумайте:

<script type="text/javascript">
function startClock(){
    //do onload work
}
if(window.addEventListener) {
    window.addEventListener('load',startClock,false); //W3C
} else {
    window.attachEvent('onload',startClock); //IE
}
</script>

http://www.quirksmode.org/js/events_advanced.html

2 голосов
/ 03 июня 2009

Вставьте это в любое место в теле страницы:

<script type="text/javascript">
window.onload = function(){
    //do something here
}
</script>
1 голос
/ 10 мая 2010

Самый чистый способ - это использование javascript-фреймворка, такого как jQuery. В jQuery вы можете определить функцию загрузки следующим образом:

$(function() {
    // ...
});

Или, если вам не нравится короткий стиль $();:

$(document).ready(function() {
    // ...
});
0 голосов
/ 06 марта 2019
window.addEventListener("load", function() {
    startClock();
}

Это вызовет функцию startClock при загрузке страницы.

0 голосов
/ 03 июня 2009
Page.ClientScriptManager.RegisterStartupScrip(this.GetType(), "startup", "startClock();", true);

или с использованием прототипа

document.observe("dom:loaded", function() {
  // code here
});
...