javascript 文件在我的 jsp 中不起作用

标签 javascript html jsp web

我刚开始学习网络开发,遇到了一些麻烦。我想在我的主页上显示一个时钟。只是一个运行的时钟。我使用了 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/

相关文章:

javascript - 如何让按键触发链接

Javascript:文本更改之间的交叉淡入淡出文本?

javascript - 如何使用异步等待作为模块方法

javascript - Angular 如何从父组件访问子组件?

javascript - 错误文档未在 IDE 中定义并且无法在浏览器或 jsfiddle 中工作

html - 在同一个div中添加新的a和span后,部分文本背景没有出现

javascript - 如何在 HTML 中显示 js 变量值,<div id> 具有鼠标悬停效果

java - 使用 JSTL 标签将 boolean 值设置为变量?

java - 如何制作带显示的colspan :column

java if 语句不一致