我有幾個需要在頁面加載以獲取內容時運行的JavaScript函數。我試圖使用window.onload來調用該函數,但它沒有奏效。當頁面加載時運行javascript函數
基本上,頁面加載完成後需要運行幾個函數,但只能運行一次。
我有這到目前爲止,但它沒有工作
<script language="javascript">
window.onload=serverstats
window.onload=latestnews
</script>
我有幾個需要在頁面加載以獲取內容時運行的JavaScript函數。我試圖使用window.onload來調用該函數,但它沒有奏效。當頁面加載時運行javascript函數
基本上,頁面加載完成後需要運行幾個函數,但只能運行一次。
我有這到目前爲止,但它沒有工作
<script language="javascript">
window.onload=serverstats
window.onload=latestnews
</script>
這是你的主要問題:
window.onload=serverstats #sets window.onload to serverstats
window.onload=latestnews #sets window.onload to latestnews and removes the reference to serverstats
您可以通過執行解決這個問題:
oldOnload = window.onload;
window.onload=function() {
oldOnload();
serverstats();
latestnews();
};
然而,因爲問題是用JQuery標記的,所以我會推薦使用它並執行:
$(document).ready(function() {
serverstats();
latestnews();
});
直接使用'onload'在某些環境下可能會非常糟糕,這些環境可能會首先設置onload或假定爲獨佔所有者... – 2011-09-04 22:01:45
我已編輯我的代碼以反映此情況。 – Gazler
謝謝。完美地工作。 – Mythrillic
您正在覆蓋onload
值。編寫一個調用它們的函數。
window.onload = function() {
serverstats();
latestnews();
};
這是打破與許多其他庫(和/或SharePoint ...)集成的一種方法。然而,它不值得-1所以.. – 2011-09-04 21:59:57
@pst:是的,其他解決方案更好。如果你想加入,請發送一個給德魯:他發佈了非jQuery解決方案,這總是很好的知道。 –
如果您已經使用jQuery我將提供另一種選擇:
$(function() {
serverstats();
latestnews();
});
這僅僅是例子,簡單的事情怎麼可以用合適的工具。
您也可以通過下面的代碼同時處理:
window.addEventListener("load", serverstats);
window.addEventListener("load", latestnews);
這並不在IE8和更早,雖然,這使用方法:
window.attachEvent("onload", serverstats);
window.attachEvent("onload", latestnews);
這就是爲什麼存在[先進的事件處理程序模型(http://www.quirksmode.org/js/events_advanced.html)。 –