2014-07-21 60 views
1

我刚开始学习web开发,而且遇到了一些麻烦。我想在我的主页上显示一个时钟。只是一个跑步的时钟。我使用了w3的一个例子,但它们都在html中,我想使用一个单独的文件。当我启动网站时,什么都没有发生,时钟也没有出现。当我将showtime放入脚本标记本身时,它就可以工作。javascript文件不会在我的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(); 

回答

0

它是一个相对路径的问题。你必须得到你的脚本的相对路径到你目前的html/jsp文件的位置正确。

尝试改变

src="JavaScript/showtime.js" 

到(如果其在同一目录)

src="./JavaScript/showtime.js" 

或者(如果它一回)

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

@ developerwjk的回答很可能是正确的但它可能不是全部答案。你的javascript是在头上,所以它将在DOM准备好之前运行(换句话说,在txt元素可用之前),所以对startTime();的调用将导致javascript错误,并且时钟永远不会开始运行。

更改线路startTime();如下:

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

另外,包括这个JavaScript收盘</body>标记之前的文件。

+0

我开始想着那个我自己。 – developerwjk

+0

+1好抓.... – Braj

相关问题