是否可以更改更改特定事件在地址栏或浏览器中的URL

is it possible to change change the url in address bar or browser on certain event

本文关键字:浏览器 URL 地址栏 事件 是否      更新时间:2023-09-26

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

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

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

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

我还没有检查 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

是的,使用 HTML5 的新 history API。在触发灯箱的位置,添加如下内容:

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

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

您可以通过在历史记录对象上使用 pushState 或 replaceState 函数来更改 url(不仅是哈希)。更多详细信息: http://diveintohtml5.info/history.html