我想在我的页面上显示日期。当我在<script>
标记中创建一些函数时,代码工作正常。我想将这两个函数放在另一个.js文件中,这样代码看起来就不那么混乱了。但是,当我这样做时,功能似乎不起作用。我的index.html和custom.js位于同一个文件夹中。有什么我做错了吗?谢谢!
我的简化index.html:
<!DOCTYPE html>
<html>
<head>
<script src="custom.js"></script>
</head>
<body>
<script>
document.write('<h1>' + returnWeek() + ', ' + returnMonth(false) + ' ' + new Date().getDate() + ', ' + new Date().getFullYear() + '</h1> <small>' + returnMonth(true) + '.' + new Date().getDate() + '.' + new Date().getFullYear() + '</small>');
</script>
</body>
</html>
我的custom.js:
function returnWeek() {
switch (new Date().getDay()) {
case 0:
return 'Sunday';
case 1:
return 'Monday';
case 2:
return 'Tuesday';
case 3:
return 'Wednesday';
case 4:
return 'Thursday';
case 5:
return 'Friday';
case 6:
return 'Saturday';
}
}
function returnMonth(num) {
if (num == true) {
return new Date().getMonth() + 1;
} else {
switch (new Date().getMonth()) {
case 0:
return 'January';
case 1:
return 'February';
case 2:
return 'March';
case 3:
return 'April';
case 4:
return 'May';
case 5:
return 'June';
case 6:
return 'July';
case 7:
return 'August';
case 8:
return 'September';
case 9:
return 'October';
case 10:
return 'November';
case 11:
return 'December';
}
}
}
修改:点击here查看完整代码!我最初将custom.js的内容放在document.write()的正上方。
答案 0 :(得分:0)
我已经通过调用外部.js文件在Opera,Firefox 35.0.1,Chrome和IE 11上测试了您的代码;它是完美的,因为它根据我的机器日期返回日期。所以请检查你的浏览器,因为Igor建议清理缓存。
答案 1 :(得分:0)
我怀疑发生的事情是你的HTML文件加载速度比JS文件快。通过立即执行代码(即使它位于HTML文件的底部),它可能会挂起,因为这些方法在技术上尚未加载。在页面加载后尝试执行代码。
function initPage () {
document.write('<h1>' + returnWeek() + ', ' + returnMonth(false) + ' ' + new Date().getDate() + ', ' + new Date().getFullYear() + '</h1> <small>' + returnMonth(true) + '.' + new Date().getDate() + '.' + new Date().getFullYear() + '</small>');
}
if (window.addEventListener) {
window.addEventListener("load", initPage, false);
} else {
window.onload = initPage;
}