History.pushState() 未显示正确的 URL
我正在使用 jQuery 和 PHP,我遇到了 history.pushState
的问题。
当我单击锚标记或链接时,浏览器中的 URL 如下所示 www.example.com/index.php/home/viewer/id
当我再次单击链接时,浏览器中的 URL浏览器看起来像这样 www.example.com/index.php/home/photo_viewer/index.php/home/viewer/id
这是不正确的。
我希望浏览器中的 URL 为 www.example.com/index.php/home/viewer/id
我该如何解决这个问题?
<a href="index.php/home/viewer/ $row['id'] " Onclick="viewer(this); return false;"> id </a>
<script type="text/javascript">
function viewer(link){
var ajax_data ={ajax:'1'};
$.ajax({
type: "POST",
url: link,
data: ajax_data,
success: function(html){
$("#viewer").html(html);
window.history.pushState(null,null, link);
e.preventDefault();
}});
return false; }
I'm using jQuery and PHP, I have a problem with history.pushState
.
When I click the anchor tag or the link once the URL in the browser looks like this www.example.com/index.php/home/viewer/id
When I click the link again the URL in the browser looks like thiswww.example.com/index.php/home/photo_viewer/index.php/home/viewer/id
which is not correct.
I want the URL in the browser to be www.example.com/index.php/home/viewer/id
How do I solve this problem?
<a href="index.php/home/viewer/ $row['id'] " Onclick="viewer(this); return false;"> id </a>
<script type="text/javascript">
function viewer(link){
var ajax_data ={ajax:'1'};
$.ajax({
type: "POST",
url: link,
data: ajax_data,
success: function(html){
$("#viewer").html(html);
window.history.pushState(null,null, link);
e.preventDefault();
}});
return false; }
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
可能是因为您的 URL 是相对的。您必须通过在前面添加斜杠使其成为绝对路径:
相对 URL 始终指定与当前资源相对的资源,即路径仅附加到当前路径。另请参阅文档:
更新:虽然确实有很大区别,但请访问链接的
href
属性,而不是链接本身:link.href
。Probably because your URL is relative. You have to make it absolute by prepending a slash:
A relative URL always specifies a resources that is relative to the current resource, i.e. the path is just appended to the current path. See also the documentation:
Update: Although it does make a big difference, access the
href
attribute of the link, instead of the link itself:link.href
.