JavaScript:如何将附加信息传递到源页面?
我有一个网站,当用户关注一个内部链接时,我想将一些额外的信息传递到一个新页面,这样目标页面上的JavaScript可以做一些有用的突出显示 有一个选项可以通过link参数(GET)传递这些信息,但它会生成大量实际上重复的页面并打破漂亮的url概念。另一种方法是使用AJAX制作webapp,但它也会将内容绑定到单个URL 在导航过程中,我如何在不干扰网站URL结构的情况下,透明地将一些信息传递到新页面?您认为“将内容绑定到单个URL”是什么意思?作为这个问题的解决方案,AJAX请求是我想到的第一件事。您不必使用页面的url来发出ajax请求,您可以根据应用程序中存在的任何条件在javascript中构建url 除了AJAX和在URL中传递参数之外,我唯一能想到的是使用Cookies。如果用户禁用了cookies,那么当然会遇到问题。我认为对服务器的Ajax调用是处理此问题的最可靠的方法。您认为它“将内容绑定到单个url”是什么意思?作为这个问题的解决方案,AJAX请求是我想到的第一件事。您不必使用页面的url来发出ajax请求,您可以根据应用程序中存在的任何条件在javascript中构建urlJavaScript:如何将附加信息传递到源页面?,javascript,jquery,html,web,hyperlink,Javascript,Jquery,Html,Web,Hyperlink,我有一个网站,当用户关注一个内部链接时,我想将一些额外的信息传递到一个新页面,这样目标页面上的JavaScript可以做一些有用的突出显示 有一个选项可以通过link参数(GET)传递这些信息,但它会生成大量实际上重复的页面并打破漂亮的url概念。另一种方法是使用AJAX制作webapp,但它也会将内容绑定到单个URL 在导航过程中,我如何在不干扰网站URL结构的情况下,透明地将一些信息传递到新页面?您认为“将内容绑定到单个URL”是什么意思?作为这个问题的解决方案,AJAX请求是我想到的第一件
除了AJAX和在URL中传递参数之外,我唯一能想到的是使用Cookies。如果用户禁用了cookies,那么当然会遇到问题。我认为对服务器的Ajax调用是处理此问题最可靠的方法。您可以将数据存储在本地存储或会话存储中,然后在目标页面上再次检索。您可以将数据存储在本地存储或会话存储中,然后在目标页面上再次检索。因此您有一些选择 表格提交 第一个选项是发布包含数据的表单。添加一个隐藏表单,在锚定单击上捕获单击事件,使用要发送到下一页的值设置隐藏字段,然后提交表单。在下一页中,读取后端中的post参数并更新页面 本地存储 单击锚定后,将localStorage设置为希望在下一页上显示的值。加载下一页时,读取localStorage值并更新该页。注意:服务器将无权访问这些值 带pushState的Ajax
使用Ajax提交表单。当Ajax调用返回时,使用
window.history.pushState
更新url,使其具有您想要显示给用户的任何url。因此您有几个选项
表格提交
第一个选项是发布包含数据的表单。添加一个隐藏表单,在锚定单击上捕获单击事件,使用要发送到下一页的值设置隐藏字段,然后提交表单。在下一页中,读取后端中的post参数并更新页面
本地存储
单击锚定后,将localStorage设置为希望在下一页上显示的值。加载下一页时,读取localStorage值并更新该页。注意:服务器将无权访问这些值
带pushState的Ajax
使用Ajax提交表单。当Ajax调用返回时,使用
window.history.pushState
以您希望向用户显示的任何url更新url。未提及的选项之一是创建脏url:
/目的地/参数1/值1/
然后剥离服务器端的其他参数并重定向:
/目的地
将附加值存储在服务器端(例如通过会话)。我仍然更喜欢在实际应用程序中使用sessionStorage,但无论如何值得一提。未提及的选项之一是创建脏URL: /目的地/参数1/值1/ 然后剥离服务器端的其他参数并重定向: /目的地
将附加值存储在服务器端(例如通过会话)。我仍然更喜欢在实际应用程序中使用sessionStorage,但无论如何值得一提。PostRequest。。。但是,如果用户再次访问该页面(通过带有书签url的get请求),它将不会有数据……这两个页面都在同一个域上吗?@epascarello没问题。关键是这些数据是暂时的。在访问之间不需要保留它。@guest271314是的,它们在同一个域上。使用
sessionStorage
POST request。。。但是,如果用户再次访问该页面(通过带有书签url的get请求),它将不会有数据……这两个页面都在同一个域上吗?@epascarello没问题。关键是这些数据是暂时的。不需要在访问之间保留它。@guest271314是的,它们在同一个域上。使用sessionStorage
,这是我到目前为止探索的所有选项。这次选择了sessionStorage。这就是我到目前为止探索的所有选项。选择了当时的会话存储。