我遇到的情况是我有一个Ajax函数调用远程站点,将数据保存到数据库中,然后我想刷新当前页面以显示新数据。问题是我也在使用标签,所以我需要通过带有URL的#tab6来让访问者回到正确的标签页。
我正在使用
window.location.href = '/clientarea.php?action=productdetails&id=<?php echo $_POST['pkgid']; ?>#tab6';
作为我的刷新代码。它确实会改变URL,因为在运行之后我可以在URL的末尾看到#tab6。问题是它实际上并没有真正刷新页面数据,因为它没有显示从远程服务器提取的新信息。我可以在真正刷新后看到数据。
hacky选项是运行window.location.href
代码以获取URL中的锚点,然后location.reload();
获取新数据,但我想避免这样做,如果有更好的方法来处理它。
答案 0 :(得分:4)
您应该在?
和#
之间进行更改。
E.g。您可以在使用Math.random()生成的#
之前添加/替换随机值:
window.location.href = '/clientarea.php?action=productdetails&id=<?php echo $_POST['pkgid']; ?>&random='+Math.random()+'#tab6';
答案 1 :(得分:2)
尝试
window.location.reload(true);
hacky解决方案
setTimeout(function(){window.location.reload(true);},100)
答案 2 :(得分:-2)
而不是window.location.href
使用window.location.assign
。