如何在用户登录时仅运行一次此 JavaScript 代码段

How can I run this JavaScript snippet only once when a user logs in?

本文关键字:一次 JavaScript 代码 用户 登录 运行      更新时间:2023-09-26

我有这个简单的JavaScript片段。

<script>
window.onload = function(){
    swal("Hello!", "Welcome to Portal", "success");
};
</script>

如果页面URL http://portal/?init,即在页面URL http://portalhttp://portal/?something_else时不运行它,我怎么能只运行它?

检查页面的location.search

<script type="text/javascript">
if(location.search == "?init"){
    window.onload = function(){
        swal("Hello!", "Welcome to Portal", "success");
    };
}
</script>

你可以检查:

  • location.href(整页网址)或
  • location.search(网址查询参数?...)或
  • location.hash(网址哈希#...

使用 PHP:

<?php
    if(array_key_exists("init",$_GET)){
      ?>
      <script>
      window.onload = function(){
        swal("Hello!", "Welcome to Portal", "success");
      };
      </script>
      <?php
    }
?>

您还可以在用户登录时设置会话,这样即使用户刷新页面,您也可以真正只运行一次脚本:

<?php
    if(array_key_exists("userLoggedIn",$_SESSION)){
      ?>
      <script>
      window.onload = function(){
        swal("Hello!", "Welcome to Portal", "success");
      };
      </script>
      <?php
      unset($_SESSION["userLoggedIn"]);
    }
?>

使用文档。网址

<script>
if(document.URL == 'full url goes here'){
    window.onload = function(){
            swal("Hello!", "Welcome to Portal", "success");
    };
}