我刚开始学习网络开发,遇到了一些麻烦。我想在我的主页上显示一个时钟。只是一个运行的时钟。我使用了 w3 的示例,但它们都在 html 中,我想使用一个单独的文件。当我启动网站时,没有任何反应,时钟也没有显示。当我将放映时间单独放入 jsp 中时,脚本标签就可以正常工作。
index.jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
<script lang="javascript" type="text/javascript" src="JavaScript/showtime.js"></script>
</head>
<body>
<p>Test</p>
<div id="txt"></div>
<p>Hello World</p>
<p>test2</p>
</body>
showtime.js
function startTime() {
var today=new Date();
var h=today.getHours();
var m=today.getMinutes();
var s=today.getSeconds();
m = checkTime(m);
s = checkTime(s);
document.getElementById('txt').innerHTML = h+":"+m+":"+s;
var t = setTimeout(function(){startTime()},500);
}
function checkTime(i) {
if (i<10) {i = "0" + i}; // add zero in front of numbers < 10
return i;
}
startTime();
最佳答案
@developerwjk 的回答很可能是正确的,但很可能不是全部答案。你的 javascript 在头部,所以它会在 DOM 准备好之前运行(换句话说,在 txt 元素可用之前),所以调用 startTime();
将导致 javascript 错误,并且时钟永远不会开始运行。
更改行 startTime();
如下:
window.onload = function() { startTime(); };
或者,在结束前立即包含此 javascript 文件 </body>
标签。
关于javascript 文件在我的 jsp 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24873944/