使用JavaScript在HTML插入最后更新日期时Dreamweaver代码浏览器不生效问题
问题排查及解决方案
问题根源
你所使用的<!-- #BeginDate format:It1 -->14-10-2021<!-- #EndDate -->是Dreamweaver专属的模板日期更新标记,并非可在浏览器端运行的JavaScript代码:
- 该标记仅能在Dreamweaver软件的编辑环境下被识别,DW会在你每次保存网页文件时,自动更新两个标记中间的日期文本
- 包裹标记的
<!-- -->是标准HTML注释语法,浏览器加载页面时会默认忽略所有注释内容,自然不会识别该标记、也不会自动更新日期
之前尝试无效的原因
- 把这段标记放入
<script language = javascript>...</script>标签没有效果:<!--在早期JS规范中是用来向不支持JS的旧浏览器隐藏JS代码的语法,现在放在script标签内的注释内容同样会被JS引擎直接跳过,不会产生执行效果 - 直接去掉注释标记也无法运行:
#BeginDate format:It1本身不是合法的JS语法,直接放在页面中要么会以普通文本形式显示,要么会触发JS语法报错
可直接使用的替代实现方案
使用原生JavaScript调用浏览器内置API实现页面最后更新日期展示,无需依赖Dreamweaver环境,所有主流浏览器均兼容:
- 首先在你需要展示更新日期的位置添加占位标签:
<span id="lastUpdateTip"></span>
- 在页面
</body>标签前添加如下JS代码即可:
const modDate = new Date(document.lastModified); // 按DD-MM-YYYY格式输出,和你之前使用的DW标记输出格式一致 const dateStr = `${String(modDate.getDate()).padStart(2,'0')}-${String(modDate.getMonth()+1).padStart(2,'0')}-${modDate.getFullYear()}`; document.getElementById('lastUpdateTip').textContent = dateStr;
内容的提问来源于stack exchange,提问作者Mick
相关产品推荐
相关产品推荐

