2011-07-04 91 views
2

在Apache Wicket中有没有办法让AJAX调用改变当前页面的URL而不重定向或重新加载页面?使用wicket通过AJAX更改网址

例如,假设我们是在网址:

我想,当我点击一个链接AJAX,执行一些动作,和URL的变化,说:

localhost:8080/otherUrl 

没有重定向,只是改变浏览器中显示的网址。 这甚至可能吗?

谢谢!
Manuel

+1

,这将是一个巨大的安全漏洞,如果浏览器允许这样的事。 – biziclop

+0

嘿嘿,你是对的... –

回答

3

您可以用JavaScript更改URL的唯一部分是散

你可以改变localhost:8080/#/someUrllocalhost:8080/#/otherUrl

做到这一点与window.location.hash

下面是一个Flash网站的例子,它使用这个概念来允许深层链接URL:http://www.2advanced.com

+1

你可以在地址栏中更改网址,就像@ martin-g在他的答案中所说的可以用历史API实现的那样 – spuas

+0

这一行代码如下:window.history.pushState(“ “,”“,url); 我更感兴趣如何强制http链接使用新的URL而不是旧的参数。 – karate

+0

你是否看到这个问题的日期@AzatMartirosyan?那么HTML5并未在生产中使用。 – AlienWebguy

0

不,它不是。如果您在浏览器中更改位置,则会向该URL发出新的请求。

(你做到这一点与window.location.href = newUrl,但页面重新加载)

3

其实你可以! 但这根本与Wicket无关。 这是HTML5中新的历史API所关注的内容。 只需在Google中搜索“html5历史API示例”即可享受。