2015-03-31 132 views
0

我想在加載頁面時在外部js文件中執行javascript函數。這是在該函數被調用JSP文件中的代碼,我把它放在了JSPjavascript函數沒有執行

<%-- Begins countdown --%> 
<script src="/pub/scripts/counter.js" type="text/javascript"></script> 
<script type="text/javascript"> 
window.onload=startCountdown; 
</script> 

這是底部的JS功能文件

function startCountdown() { 
var TIMEOUT = 900000; 
var COUNT_BACK = 3; 
setTimeout("displayWarning("+COUNT_BACK+")", TIMEOUT); 
} 

頁面加載時在瀏覽器中,我看到腳本已加載,但startCountdown函數從未得到執行。我該如何做這項工作?

+1

你怎麼知道'startCountdown'從來沒有得到執行?也許是這樣,但是'displayWarning'壞了。這不會倒數。它會在900秒後被調用一次...所以你需要等待很長時間才能運行。 – 2015-03-31 20:45:52

回答

0

我會在您的html中使用<body onload="startCountdown()">以確保頁面必須在執行腳本之前完全加載。

+0

這就是他已經通過'window.onload'做的事情。這是同一件事。 – 2015-03-31 20:43:14

0

變化window.onload=startCountdown;window.onload=startCountdown();和使用defer

<%-- Begins countdown --%> 
<script defer src="/pub/scripts/counter.js" type="text/javascript"></script> 
<script defer type="text/javascript"> 
window.onload=startCountdown(); 
</script> 
this is the function in the js file 

var startCountdown = function() { 
var TIMEOUT = 900000; 
var COUNT_BACK = 3; 
setTimeout("displayWarning("+COUNT_BACK+")", TIMEOUT); 
}; 
+0

添加'()'是不正確的。而「推遲」並不會改變任何事情。 – 2015-03-31 20:42:34