无需函数即可将参数附加到url的最佳方式

Best way to append params to url without function

本文关键字:url 方式 最佳 参数 函数      更新时间:2023-09-26

我正在寻找向url params示例添加id的最佳方法。

http://example.com/1

所以说,如果我把它设置在一个间隔附近,它就会是。

var i = 0;
setInterval(function() {
document.location.search = 'http://example.com/' + i++;
}, 1000);

我试图得到的结果是在没有页面刷新的情况下为url添加额外的参数,这样它就可以不断更新。

http://example.com/1
http://example.com/2
http://example.com/3
http://example.com/4

等等。。。

请帮忙。

有两种方法可以做到这一点。一个是使用HTML5历史API,将是这样的代码:

var i = 0;
setInterval(function() {
history.pushState(null, document.title, 'example.com/' + i++);
}, 1000);

然而,这将把它推到浏览器历史记录中,并不是所有的浏览器都支持它

或者,如果你不介意#,你可以使用哈希码,但它可能会让访问者感到恼火,因为它可能会每秒都将页面推到顶部。如果你不在乎,那么这就是你的代码:

var i = 0;
var url= window.location.href;
setInterval(function() {
window.location.href = url+"#"+i++;

}, 1000);

无论如何,这听起来是个坏主意,所以请重新考虑使用它。我很确定你想要实现的目标可以用一种更干净的方式完成。

您想要更改"片段标识符",这是url中可以在不刷新页面的情况下更改的部分。

这听起来并不符合逻辑,但如果您真的需要这样做,您可以使用history.pushState

实现这一点的最简单方法是:

history.pushState("", "", "/1");

请注意,IE中的支持非常有限。

这现在可以在Chrome、Safari、FF、IE10中完成。

window.history.pushState(“object or string”, “Title”, “/new-url”);

在您的情况下:

var i = 0;
setInterval(function() {
window.history.pushState(“”, “”,'http://example.com/' + i++);
}, 1000);

更多信息请点击此处:

http://spoiledmilk.com/blog/html5-changing-the-browser-url-without-refreshing-page/