更改地址栏中的完整 URL,无需重新加载页面
Posted
技术标签:
【中文标题】更改地址栏中的完整 URL,无需重新加载页面【英文标题】:Change complete URL in adress bar, without reloading the page 【发布时间】:2016-06-08 01:24:27 【问题描述】:我需要一个网页在访问时完全改变用户地址栏。
例如:我访问 www.X.com,但我的地址栏显示 www.Z.com。
我已经查看了 history.pushState / history.replaceState,但使用它们我得到的结果如下:www.X.com/www.Z.com。
有没有办法,最好是使用history.pushState/replaceState,来实现这个效果?
【问题讨论】:
你试过了吗:***.com/questions/10953792/… ***.com/questions/824349/… 我已经尝试过这些,但就像我说的那样,它们附加到地址栏而不是完全替换它。 【参考方案1】:function changeUrl(page, url)
if (typeof (history.pushState) != "undefined")
var obj = Page: page, Url: url ;
history.pushState(obj, obj.Page, obj.Url);
else
alert("Browser does not support html5.");
$(function ()
$("#button1").click(function ()
changeUrl('Page1', 'Page1.htm');
);
$("#button2").click(function ()
changeUrl('Page2', 'Page2.htm');
);
$("#button3").click(function ()
changeUrl('Page3', 'Page3.htm');
);
);
【讨论】:
最好能解释一下代码的作用,而不是仅仅放置一段代码。【参考方案2】:我通过托管服务提供商解决了这个问题。
【讨论】:
这不是问题的答案。这个问题的实际答案是,出于安全原因,在不重新加载页面的情况下更改浏览器栏中的主机名是不可能的。以上是关于更改地址栏中的完整 URL,无需重新加载页面的主要内容,如果未能解决你的问题,请参考以下文章