我有一个网站,当用户关注内部链接时,我想将一些额外的信息传递给新页面,因此目标页面上的JavaScript可以做一些有用的突出显示。
有一个选项可以通过链接参数(GET)传递该信息,但它会生成大量虚拟重复的页面并打破漂亮的URL概念。另一种方法是使用AJAX创建一个webapp,但它也会将内容绑定到一个URL。
如何在导航期间透明地将某些信息传递到新页面,而不会弄乱网站的网址结构?
答案 0 :(得分:3)
您可以将数据存储在本地存储或会话存储中,然后在目标页面上再次检索它。
答案 1 :(得分:1)
所以你有几个选择。
表单提交
第一个选项发布带有数据的表单。添加隐藏的表单,在锚点击捕获click事件,使用要发送到下一页的值设置隐藏的字段,然后提交表单。在下一页上,阅读后端的帖子参数并更新页面。
本地存储
单击锚点后,将localStorage设置为您希望在下一页上显示的值。加载下一页时,请读取localStorage值并更新页面。注意:服务器无权访问值
使用pushState的Ajax
使用Ajax提交表单。当Ajax调用返回时,使用window.history.pushState
使用您希望向用户显示的任何URL更新URL。
答案 2 :(得分:0)
未提及的其中一个选项是创建脏 URL:
/目的地/的参数1 强> / <强>值1 强> / ...
然后在服务器端剥离其他参数并重定向:
/目的地
保持在服务器端存储的附加值(例如,通过会话)。我仍然更喜欢在实际应用程序中使用 sessionStorage ,但无论如何都值得一提。
答案 3 :(得分:-1)
你的意思是什么&#34;将内容绑定到一个网址&#34;?作为解决这个问题的解决方案,AJAX请求是我首先想到的。您不必使用页面的url来发出ajax请求,您可以根据应用程序中存在的任何条件在javascript中构建url。
除了AJAX并在URL中传递参数外,我唯一能想到的就是使用Cookies。如果用户禁用了cookie,那当然会遇到问题。我认为对服务器的Ajax调用是解决问题的最有效方法。