Javascript 我们可以在location.reload(真)后添加代码吗?

Javascript 我们可以在location.reload(真)后添加代码吗?,javascript,reload,Javascript,Reload,我有一个从服务器重新加载的函数: location.reload(true) 目前,我在这一行之后的所有代码都没有执行 我很好奇是否有办法在重新加载后运行更多的代码?为什么在重新加载页面后需要执行一些操作 如果需要在重新加载后执行某些操作,那么可以将一些参数传递给页面,并选中此选项以执行其他操作。您可以重定向到同一页面并传递完整的url var url = window.location.href; url += '&param=1' window.location.href = u

我有一个从服务器重新加载的函数:

location.reload(true)
目前,我在这一行之后的所有代码都没有执行


我很好奇是否有办法在重新加载后运行更多的代码?

为什么在重新加载页面后需要执行一些操作

如果需要在重新加载后执行某些操作,那么可以将一些参数传递给页面,并选中此选项以执行其他操作。您可以重定向到同一页面并传递完整的url

var url = window.location.href; 
url += '&param=1'
window.location.href = url;

因此,当重新加载页面时,您可以通过GET检查参数并执行任何您想要的操作。我希望这个把戏对你有帮助

方法1:使用PHP

1) 使用参数重新加载

2) 使用PHP获取该参数

例如:

window.location.href += '&reloading=1';
//it's equivalent to:
//window.location.href = window.location.href + '&reloading=1';
<script>
    function reloadNow(){
        alert("I'm about to reload");
        sessionStorage.setItem('reloading',"true");
        window.location.reload(true);
    }

    //when loading:        
    if (sessionStorage.getItem('reloading') === "true") {
        sessionStorage.clear(); //so it doesn't trigger next time
        alert("I've been reloaded!");
    }
</script>

<button onclick="reloadNow()">Press to reload</button>
然后:

<?php
if (isset($_GET['reloading'])) {
    echo '<script>pageReloaded();</script>';
}
?>

由于PHP将首先执行,所以这个小脚本(函数调用)将被编写,然后在javascript中执行,因此将调用pagerLoaded()函数

一个完整的例子是:

<?php if (isset($_GET['reloading'])) echo '<script>pageReloaded();</script>'; ?>
<script>
    function reloadNow(){
        alert("I'm about to reload");
        window.location.href += '&reloading=1';
    }
    function pageReloaded(){
        alert("I've been reloaded!");
    }
</script>

<button onclick="reloadNow()">Press to reload</button>

函数reloadNow(){
警报(“我即将重新加载”);
window.location.href+='&重新加载=1';
}
函数pagerLoaded(){
警报(“我被重新加载了!”);
}
按重新加载

方法2:没有PHP,只有JAVASCRIPT

使用

1) 设置会话存储

2) 重新装载

3) 把那个会话存储起来

例如:

window.location.href += '&reloading=1';
//it's equivalent to:
//window.location.href = window.location.href + '&reloading=1';
<script>
    function reloadNow(){
        alert("I'm about to reload");
        sessionStorage.setItem('reloading',"true");
        window.location.reload(true);
    }

    //when loading:        
    if (sessionStorage.getItem('reloading') === "true") {
        sessionStorage.clear(); //so it doesn't trigger next time
        alert("I've been reloaded!");
    }
</script>

<button onclick="reloadNow()">Press to reload</button>

函数reloadNow(){
警报(“我即将重新加载”);
setItem('reloading','true');
window.location.reload(true);
}
//加载时:
if(sessionStorage.getItem('reloading')=“true”){
sessionStorage.clear();//这样下次就不会触发
警报(“我被重新加载了!”);
}
按重新加载

最好的方法是编写一个函数,如果设置了某些“GET”变量,则调用该函数,并在每次运行时检查它们,例如
mypage.html?reload=true

甚至散列位置:
mypage.html#reload

你可以这样比较:

$(document).ready(function () {
  if (window.location.hash == '#reload') {
    onReload();
  }
});

function onReload () {
  console.log('test');
}

function reload () {
  window.location.hash = 'reload';
  window.location.reload();
}
只需调用
reload()函数

输出(在控制台中):
test


然后,如果您不想在页面再次刷新时运行函数,您可以将用户重定向到远离散列的位置:
window.location.hash=''

重新加载页面时,脚本也会重新加载,就像程序重新启动一样。因此,代码不会在它之后运行。如果你想在那之后做点什么,你可能不应该重新加载。你能给我们一些背景吗?答案就在这里,我不明白。你的额外代码做什么?你不能先执行代码然后重新加载吗?你确定你甚至需要
位置。重新加载(true)
?现在是2018年,AJAX得到了很好的支持,当只有部分内容更新时,不需要重新获取整个页面。这不需要Php,它可以完全由javascript处理,服务器端调用非常繁重。@NotroiousPyro OP正在做
定位。重新加载(true)
所以对服务器端的调用无论如何都完成了。不,php(动态页面)和静态js文件之间的区别是巨大的。Php必须从服务器重新加载,js可以从客户端缓存加载。@notriouspyro。我对答案进行了编辑,只包含了一个客户端解决方案。非常感谢您的这些精彩回复。我会马上检查的!很抱歉很长时间没有回复你。我刚刚学习了投票和评论,我想感谢你们的努力。