基础触发window.onload两次

问题描述

我注意到包括页面上的Foundation在内,window.onload事件被触发了两次

Codeped example

<html>
  <head>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/foundation/6.6.3/js/foundation.min.js"></script>
    <script>
      window.onload = function() {
        alert('onload');
      }
    </script>
  </head>
  <body>
    <div>gjgjhj</div>
  </body>
</html>

这是正确的行为吗?

谢谢

解决方法

祝贺您关于堆栈溢出的第一个问题!是的,这是预期的。如果您稍作尝试,可以在注释掉foundation.min.js导入行时看到,如下所示:

<html>
  <head>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
    <!-- <script src="https://cdnjs.cloudflare.com/ajax/libs/foundation/6.6.3/js/foundation.min.js"></script> -->
    <script>
      window.onload = function() {
        alert('onload');
      }
    </script>
  </head>
  <body>
    <div>gjgjhj</div>
  </body>
</html>

它只会加载一次页面。因此,第二次加载您页面的人是Foundation javascript。它将重新加载您的页面以加载所有Foundation功能。

您可以在此处查看其功能:https://stackoverflow.com/a/23316686/1537413