1

我尝试了以下方法在浏览器的语言环境中格式化日期:

<script>document.write((new Date(2021, 4, 14)).toLocaleString().split(",")[0])</script>

但是,基于这个问题Document.write clears page似乎在文档流关闭后正在写入,从而打开一个新流并替换我页面上的内容。

使用 htmx 是否有推荐的方法将日期格式化为浏览器区域设置?

是否有一个 htmx 标签可以让我安全地执行这个 javascript?

这是我用来调用 htmx 的 html:

 <div hx-get="/open_orders" 
      hx-trigger="load" 
      hx-target="this" 
      hx-swap="outerHTML"> 
     <img class="htmx-indicator" 
          src="[[=URL('static', 'images/spinner.gif')]]" 
          height="20"/> 
 </div>

-吉姆

4

1 回答 1

0

正如您所提到的,document.write()与 htmx 一起玩得不好。对于大多数想要控制在浏览器窗口中显示的内容的前端库/工具包/框架来说都是如此。

相反,您可以通过多种方式执行此操作:

  1. 尝试在您的服务器上渲染时间并简单地通过 htmx 显示值。当您尽可能让服务器负责时,此库效果最佳。如果可以的话,我建议从这个开始,而不是通过 Javascript 呈现日期。

  2. 如果您确实需要在浏览器上更新此信息(例如,要在数据更改时更新显示,请改为写入特定的 DOM 元素:

<span id="time">&nbsp;</span>
<script>
    document.getElementById('time').innerHTML = currentTime();
</script>
  1. 您还可以连接到htmx 触发的各种事件。如果您想在 htmx 执行某些操作时更新浏览器上的信息,这很有效——例如,您可以在 htmx 将新的 html 片段加载到 DOM 时更新显示的日期/时间。
于 2021-10-14T00:56:23.377 回答