提问者:小点点

引导脚本在工具提示初始化之前未完成加载


我有一个简单的一页网站与bootstrap 5设置使用Spring引导与thymeleaf。

在这个页面上,我想例如使用引导工具提示。问题是初始化工具提示的函数在引导脚本加载完成之前触发,因此会出现错误并且页面无法正确加载。

<head>
  ... // css and meta omitted for brevity

  <script th:src="@{/js/bootstrap.bundle.min.js}" async="true"></script>
  
</head>

<body>

  ... // page content

  <script>
    var tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'))
    var tooltipList = tooltipTriggerList.map(function (tooltipTriggerEl) {
      return new bootstrap.Tooltip(tooltipTriggerEl)
    })
  </script>
</body>

我试图放置引导脚本

  • 在头部
  • 带有异步属性
  • 带有延迟属性
  • 属性的组合
  • 在工具提示初始化脚本之前的主体部分

但是没有什么能阻止第二个脚本在第一个脚本完成加载之前触发。

我在这里阅读了超文本标记语言规范,但最后我不确定脚本的加载是否真的是问题所在。

有人有一个想法来明确防止这个错误吗?


共1个答案

匿名用户

终于解决了这个问题。

我把所有的javascript代码放在一个单独的js文件中。然后我在正文末尾的引导文件之后加载这个文件,一切正常。

<head>
  ... //css and meta
</head>

<body>
  ... // page content

  <script th:src="@{/js/bootstrap.bundle.min.js}"></script>
  <script th:src="@{/js/myfunction.js}"></script>

</body>