如何在第二次访问页面时激活javascript



我非常喜欢堆栈溢出,但这是我第一次写!

我有一个页面,当你点击公司标志时,会打开一个类似于右下拉菜单的页面。它是用纯css开发的。当你浏览内部页面时,我用这个脚本保持菜单打开,比如"about"、"gallery"、"contacts"、ecc。。。

<script>
    $(document).ready(function () {
    $("#slide").click();
});
</script>

我需要的是,当你从我之前告诉过你的其他内部页面返回时,在主页上激活这个脚本。而不是在第一个主页加载,我需要关闭的标志和隐藏的菜单!

有人有什么建议吗?再次非常感谢大家!

其他人有可能的解决方案吗?

第一次访问时,在文档就绪子句中:

localStorage.setItem("displayDropDown", "true");

每次访问:

$(document).ready(function() {
    if(localStorage.getItem("displayDropDown") === "true") {
        $("#slide").click();
    }
});

将它们放在同一个文档准备条款中:

$(document).ready(function() {
    if(localStorage.getItem("displayDropDown") === "true") {
        $("#slide").click();
    }
    localStorage.setItem("displayDropDown", "true");
});

这是一个完整的例子。它使用localStorange和Cookies(通过jscookie)作为后备:

现代浏览器示例:

<!DOCTYPE html>
  <html>
  <head>
    <title>Test</title>
  </head>
  <body>
    <h1 id="count"></h1>
    <script type="text/javascript">
      const getNumberOfPreviousVisits = () => {
        const numberOfVisits = window.localStorage.numberOfVisits ? parseInt(window.localStorage.numberOfVisits, 10) + 1 : 0;
        window.localStorage.numberOfVisits = numberOfVisits;
        return numberOfVisits;
      }
      document.addEventListener('DOMContentLoaded', function(event) {
        if (getNumberOfPreviousVisits() > 0) {
          // $("#slide").click();
        }
      });
    </script>
  </body>
</html>

支持传统浏览器的示例:

<!DOCTYPE html>
  <html>
  <head>
    <title>Test</title>
  </head>
  <body>
    <h1 id="count"></h1>
    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/js-cookie/2.1.0/js.cookie.min.js"></script>
    <script type="text/javascript">
      var localStorageAvailable = function() {
        try {
          var x = '__storage_test__';
          window.localStorage.setItem(x, x);
          window.localStorage.removeItem(x);
          return true;
        } catch(e) {
          return false;
        }
      }
      var getNumberOfPreviousVisitsLocalStorage = function() {
        var numberOfVisits = window.localStorage.numberOfVisits ? parseInt(window.localStorage.numberOfVisits, 10) + 1 : 0;
        window.localStorage.numberOfVisits = numberOfVisits;
        return numberOfVisits;
      }
      var getNumberOfPreviousVisitsCookie = function() {
        var numberOfVisits = Cookies.get('numberOfVisits') ? parseInt(Cookies.get('numberOfVisits'), 10 ) + 1 : 0;
        Cookies.set('numberOfVisits', numberOfVisits);
        return numberOfVisits;
      }
      var getNumberOfPreviousVisits = function() {
        if (localStorageAvailable()) {
          return getNumberOfPreviousVisitsLocalStorage();
        }
        return getNumberOfPreviousVisitsCookie();
      }
      document.addEventListener('DOMContentLoaded', function(event) {
        if (getNumberOfPreviousVisits() > 0) {
          // $("#slide").click();
        }
      });
    </script>
  </body>
</html>

原始示例:

<!DOCTYPE html>
  <html>
  <head>
    <title>Test</title>
  </head>
  <body>
    <h1 id="count"></h1>
    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/js-cookie/2.1.0/js.cookie.min.js"></script>
    <script type="text/javascript">
      const localStorageAvailable = () => {
        try {
          const x = '__storage_test__';
          window.localStorage.setItem(x, x);
          window.localStorage.removeItem(x);
          return true;
        } catch(e) {
          return false;
        }
      }
      const getNumberOfPreviousVisitsLocalStorage = () => {
        const numberOfVisits = window.localStorage.numberOfVisits ? parseInt(window.localStorage.numberOfVisits, 10) + 1 : 0;
        window.localStorage.numberOfVisits = numberOfVisits;
        return numberOfVisits;
      }
      const getNumberOfPreviousVisitsCookie = () => {
        const numberOfVisits = Cookies.get('numberOfVisits') ? parseInt(Cookies.get('numberOfVisits'), 10 ) + 1 : 0;
        Cookies.set('numberOfVisits', numberOfVisits);
        return numberOfVisits;
      }
      const getNumberOfPreviousVisits = () => {
        if (localStorageAvailable()) {
          return getNumberOfPreviousVisitsLocalStorage();
        }
        return getNumberOfPreviousVisitsCookie();
      }
      document.addEventListener('DOMContentLoaded', function(event) {
        if (getNumberOfPreviousVisits() > 0) {
          // $("#slide").click();
        }
      });
    </script>
  </body>
</html>

最新更新