我有一個aspx,它在正文的onload事件期間運行了以下javascript函數。將一個JavaScript事件掛載到頁面加載
<body onload="startClock();">
但是,我將aspx設置爲使用母版頁,因此body標籤不再存在於aspx中。我如何着手註冊startClock函數以在頁面被擊中時運行並仍然使用masterpage?
我有一個aspx,它在正文的onload事件期間運行了以下javascript函數。將一個JavaScript事件掛載到頁面加載
<body onload="startClock();">
但是,我將aspx設置爲使用母版頁,因此body標籤不再存在於aspx中。我如何着手註冊startClock函數以在頁面被擊中時運行並仍然使用masterpage?
如果你不想明確指定的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>
插入這在任何地方的頁面的正文:
<script type="text/javascript">
window.onload = function(){
//do something here
}
</script>
Page.ClientScriptManager.RegisterStartupScrip(this.GetType(), "startup", "startClock();", true);
或使用原型
document.observe("dom:loaded", function() {
// code here
});
最簡潔的方法是使用像jQuery這樣的JavaScript框架。 在jQuery中,你可以通過以下方式定義上載功能:
$(function() {
// ...
});
或者,如果你不喜歡短$();
風格:
$(document).ready(function() {
// ...
});
這一個是,如果唯一的問題其他代碼也被拉入複合頁面,做同樣的事情 - 持續勝利。重新定義window.onload的作品,但應注意確保它尚未被定義! – 2009-06-03 19:23:19
非常真實!感謝您的提醒。 – 2009-06-03 19:35:55
我看過代碼,測試是否定義了`window.onload`,如果是,則引用它在一個臨時變量中,然後從* new *`window.onload`中調用該變量。 – 2011-08-02 21:28:51