0

你们都用过pinterest,你可以看到当你点击任何pin时,会添加一个div,并且lightbox会显示在同一页面上,但url会更改为实际pin页的url。我有相同的灯箱来显示数据,是否可以像那样更改网址?..

我要说的一件事是,我有一个链接,该链接具有调用 view() 方法的 onclick 事件,其中我正在使用 ajax 请求调用另一个页面,该页面在我的页面上显示该页面的内容,我想更改 url单击此链接并在关闭时返回上一个网址时..这是我的代码

function view(){
   $.get('mypage.jsp', function(html) {
   $(html).hide().appendTo('body').fadeIn(500);
   }, 'html');
};
4

4 回答 4

3

此功能称为HTML5 推送状态。这是一个相关的 StackOverflow 问题,可能会提供更多见解。使用 HTML5 History API 的好教程(Pushstate?)

于 2012-08-15T11:46:10.963 回答
1

我还没有检查过 Pintrest 的解决方案。但是哈希是你要找的吗?

window.location.hash="Whatever-you-want-to-add-to-the-URL"

这将更http://stackoverflow.com/posts/11968693/改为http://stackoverflow.com/posts/11968693/#Whatever-you-want-to-add-to-the-URL

于 2012-08-15T11:45:18.790 回答
1

是的,使用 HTML5 的新historyAPI。在触发灯箱的地方,添加如下内容:

var hist = window.history;
hist.pushState({ image: [IMAGE URL] }, 'lightbox', [URL]);

这将在不重新加载页面的情况下更改当前 URL,并将在浏览器历史记录中创建一个条目,因此用户可以使用浏览器的后退按钮返回到之前的状态(在这种情况下,在他们打开灯箱之前)。

于 2012-08-15T11:47:30.060 回答
0

您可以使用历史对象上的 pushState 或 replaceState 函数来更改 url(不仅是哈希)。更多细节:http ://diveintohtml5.info/history.html

于 2012-08-15T11:47:20.723 回答