javascript文件不能在我的jsp中工作

时间:2014-07-21 20:19:06

标签: javascript html jsp web

我刚刚开始学习网页开发,我遇到了一些麻烦。我想在我的主页上显示一个时钟。只是一个运行时钟。我使用了w3中的一个例子,但是他们在html中都拥有它,我想使用一个单独的文件。当我启动网站时,没有任何事情发生,时钟也没有出现。当我将showtime单独放入一个脚本标记到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();

2 个答案:

答案 0 :(得分:2)

@ developerwjk的答案很可能是正确的,但它可能不是完整的答案。你的javascript在头脑中,所以它将在DOM准备好之前运行(换句话说,在txt元素可用之前),因此调用startTime();将导致javascript错误,时钟将从不开始跑步。

更改行startTime();,如下所示:

window.onload = function() { startTime(); };

或者,在结束</body>标记之前包含此javascript文件。

答案 1 :(得分:0)

它是一个相对路径问题。您必须将脚本的相对路径设置为当前html / jsp文件的位置正确。

尝试更改

src="JavaScript/showtime.js"

to(如果它在同一个目录中)

src="./JavaScript/showtime.js"

或(如果回来的话)

src="../JavaScript/showtime.js"