Answers:
使用HTML5,您无需重新加载即可修改网址:
如果您想在浏览器的历史记录中发表新文章(即返回按钮将起作用)
window.history.pushState('Object', 'Title', '/new-url');
如果您只想更改网址而无法返回
window.history.replaceState('Object', 'Title', '/another-new-url');
该对象可用于ajax导航:
window.history.pushState({ id: 35 }, 'Viewing item #35', '/item/35');
window.onpopstate = function (e) {
var id = e.state.id;
load_item(id);
};
在此处阅读更多信息:http : //www.w3.org/TR/html5-author/history.html
要添加大家已经说过的话,请编辑window.location.hash属性以匹配您在onclick函数中想要的URL。
window.location.hash = 'category-name'; // address bar would become http://example.com/#category-name
我相信出于安全原因,不允许将地址栏直接操作到一个完全不同的网址,而不必移动到该网址,如果您对此感到满意的话
www.mysite.com/products/#{selectedCat}
即在同一页面内的锚样式链接,然后查看大多数javascript库中现在存在的各种历史记录/“后退按钮”脚本。
提到更新面板会使我猜测您正在使用asp.net,在这种情况下,asp.net ajax历史记录控件是一个不错的起点
我认为这是不可能的(至少更改为完全不同的地址),因为这是对地址栏的不直观的滥用,并且可能会引发网络钓鱼攻击。
“ window.location.hash”
如sanchothefat建议的那样,这应该是唯一的方法。因为我在所有地方都看到了此功能,所以一直在URL中的#号之后。
path
和/或query string
;他们无法更改协议,域或端口(因为这将是其他人指出的安全问题)。hash
上面的函数可以更改锚(或片段ID)