Javascript 我们可以在location.reload(真)后添加代码吗?
我有一个从服务器重新加载的函数:Javascript 我们可以在location.reload(真)后添加代码吗?,javascript,reload,Javascript,Reload,我有一个从服务器重新加载的函数: location.reload(true) 目前,我在这一行之后的所有代码都没有执行 我很好奇是否有办法在重新加载后运行更多的代码?为什么在重新加载页面后需要执行一些操作 如果需要在重新加载后执行某些操作,那么可以将一些参数传递给页面,并选中此选项以执行其他操作。您可以重定向到同一页面并传递完整的url var url = window.location.href; url += '¶m=1' window.location.href = u
location.reload(true)
目前,我在这一行之后的所有代码都没有执行
我很好奇是否有办法在重新加载后运行更多的代码?为什么在重新加载页面后需要执行一些操作 如果需要在重新加载后执行某些操作,那么可以将一些参数传递给页面,并选中此选项以执行其他操作。您可以重定向到同一页面并传递完整的url
var url = window.location.href;
url += '¶m=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。我对答案进行了编辑,只包含了一个客户端解决方案。非常感谢您的这些精彩回复。我会马上检查的!很抱歉很长时间没有回复你。我刚刚学习了投票和评论,我想感谢你们的努力。