jQuery刷新页面,然后执行某些操作。

3

是否可以使用Jquery或JavaScript在页面刷新后执行命令?类似于这样,除了我的代码不起作用。

<script>
$('#some-button').click(function() {
   location.reload();
   $('#another-button').trigger("click");
});
</script>
3个回答

5

可以的

通过haschange的帮助

  1. onClick时更新一些哈希值到URL中
  2. 然后在haschange事件中匹配hasvalue

代码

<script>
window.addEventListener("hashchange", hasChanger, false);

function hasChanger(){
  var key = window.location.hash
  if(key == '#trigger'){
     $('#another-button').trigger("click");
  }
}

$('#some-button').click(function() {
   window.location.href = window.location.href+'#trigger'
});
</script>

0
可以轻松地使用导航计时 API。
checkReloadedPage(){
      if (window.performance) {
        console.info("window.performance working");
      }
      if (performance.navigation.type == 1) {
       // mean page is reloaded
        return 1;
      } else {
        //mean page is not reloaded
        return 2;
      }
    }

导航定时 API: https://www.w3.org/TR/navigation-timing/


0

你可以通过使用本地存储技巧来实现。

 <script>
    $('#some-button').click(function() {
       // Save on local storage
       localStorage.setItem("myfunction", "dosomething");
       location.reload();

    });

    $(document).ready(function(){
        // Retrieve stored data
        if(localStorage.getItem("myfunction")=="dosomething")
        {
           //remove saved data
           localStorage.removeItem("myfunction");
           //do your stuff here
           $('#another-button').trigger("click");
         }
     });
    </script>

顺便说一下,在重新加载页面后这样做不是推荐的方式来执行某些操作。

如果你想要做这样的事情,你也可以使用服务器端会话来存储数据,以在不同的页面之间共享。 使用 AJAX 是比这更好的方法,你可以轻松地在 JavaScript 或 jQuery 中实现它。

$.post('pageAdress',{'key':'value'},function(result){
    //do youe stuff here
});

这个函数需要3个参数

  1. 要调用的页面地址
  2. 如果需要,可以通过post方法传递数据
  3. 回调函数

您可以根据自己的需求实现它,以确定要重新加载哪些内容。 这可以在不刷新页面的情况下执行您的代码。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接