在html中调用外部js文件的函数

时间:2017-11-10 05:16:38

标签: javascript html

我尝试使用external js文件在html文件中打印时间,但无法打印时间。如果我使用外部js作为内联而不是打印时间。为什么这样?

我的源代码:

time(){
var today = new Date();
var day = today.getDay();
var daylist = ["Sunday", "Monday", "Tuesday", "Wednesday ", "Thursday", "Friday", "Saturday"];
document.writeln("Today is : " + daylist[day] + ".");
var hour = today.getHours();
var minute = today.getMinutes();
var second = today.getSeconds();
var prepand = (hour >= 12) ? " PM " : " AM ";
hour = (hour >= 12) ? hour - 12 : hour;
if (hour === 0 && prepand === ' PM ')
{
    if (minute === 0 && second === 0)
    {
        hour = 12;
        prepand = ' Noon';
    }
    else
    {
        hour = 12;
        prepand = ' PM';
    }
}
if (hour === 0 && prepand === ' AM ')
{
    if (minute === 0 && second === 0)
    {
        hour = 12;
        prepand = ' Midnight';
    }
    else
    {
        hour = 12;
        prepand = ' AM';
    }
}

document.write("Current Time : " + hour + prepand + " : " + minute + " : " + second);
}
  
<html>
  <head>
  <meta charset="utf-8">
 
  <link rel="stylesheet" type="text/css" href="watchdiv.css">
 
  <title>JavaScript current day and time</title>  
  </head>
  <body>
  <div id="watch">
 <script src="watch.js">time()</script>
  
  </div>
  </body>
</html>

我错过了什么来获得结果?在div标签中没有结果打印

4 个答案:

答案 0 :(得分:1)

这很可能是因为文件没有及时加载,因此调用时间函数的脚本块失败。

将加载文件的脚本标记移动到html文件的底部。理想情况下,您应该使用一些代码逻辑来检测文件何时加载。如果您使用像jquery这样的库,则只需预先安装。

你也做错了,你需要两个标签,一个加载脚本,一个运行你的功能。

<script src="watch.js"></script>
<script>time();</script>

答案 1 :(得分:1)

尝试:

<script src="watch.js"></script>
<script>time();</script>

答案 2 :(得分:0)

datestmp.js:

date()
function date(){
test = new Date()
month = test.getMonth()
month = (month * 1) + 1
day = test.getDate()
year = test.getFullYear()
document.write(" ",month,"/",day,"/",year," ")
}

在您的HTML中:

<script src="datestmp.js">
</script>

答案 3 :(得分:0)

您正在同时加载和执行两者。

由于Javascript是同步的。因此,首先必须加载文件,然后下一个脚本标记将是执行代码。

<script type="text/javascript" src="watch.js"></script>

<script>
   time();
</script>