繁体   English   中英

使用javascript将“ / example”附加到网址

[英]Appending “/example” to url using javascript

有没有简单的方法可以做到这一点? 所有大型网站(Facebook,Google,Instagram)都使用此方法。

那我到底在找什么? 我需要将字符串“ / example”推送到我的URL,然后,浏览器窗口不应重新加载或重定向。 我只是想从url中获取一些价值,并让我的JS代码正常工作。 我用下面的代码尝试过。

location.href="example";//result: localhost/example

但是,问题是我的浏览器开始强制进行某些连接,它尝试不间断地连接到我的本地主机,类似no-end while循环,并且没有任何重新加载或重定向,我的页面保持不变。

是否有可能以简单的方式进行此类操作,或者此刻对我来说很重要? 我检查了更多示例和问题,但没有找到答案。

对不起,我的英语,希望你能理解我的问题

您正在寻找History API

尝试使用诸如history.replaceState( {} , 'Example-Title', location.href+'/example' );

是的,您可以操纵URL和历史记录。 不确定您到底需要完成什么,但这可以给您一个想法。

这通常是前端框架处理url和路由的方式。

var stateObj = { foo: "bar" };
history.pushState(stateObj, "page 2", "bar.html");

pushState()方法

pushState()具有三个参数:状态对象,标题(当前被忽略)和(可选)URL。 让我们更详细地检查这三个参数:

状态对象—状态对象是一个JavaScript对象,它与pushState()创建的新历史记录条目相关联。 每当用户导航到新状态时,都会触发popstate事件,并且该事件的state属性包含历史记录条目的状态对象的副本。

状态对象可以是任何可以序列化的对象。 因为Firefox将状态对象保存到用户的磁盘上,以便用户重新启动浏览器后可以将其还原,所以我们对状态对象的序列化表示施加了640k个字符的大小限制。 如果将序列化表示形式大于此形式的状态对象传递给pushState(),则该方法将引发异常。 如果您需要更多的空间,建议您使用sessionStorage和/或localStorage。

title-Firefox当前会忽略此参数,尽管将来可能会使用它。 在此处传递空字符串应该可以防止将来对方法的更改。 或者,您可以为要移动的州传递简短的标题。

URL-新历史记录条目的URL由此参数指定。 请注意,在调用pushState()之后,浏览器将不会尝试加载此URL,但是它可能稍后会尝试加载URL,例如在用户重新启动浏览器之后。 新的URL不必是绝对的。 如果是相对的,则相对于当前URL进行解析。 新网址必须与当前网址具有相同的来源; 否则,pushState()将引发异常。 该参数是可选的。 如果未指定,则将其设置为文档的当前URL。

在文档页面中找到更多详细信息:

https://developer.mozilla.org/zh-CN/docs/Web/API/History_API

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM