2015-03-31 138 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