如何在两个HTML页面之间交换variables?

我有两个HTML页面, example1.htmlexample2.html

如何使用查询string将example1.htmlvariables传递给example2.html ,并在不使用任何服务器端代码的情况下检索example2.html中的variables?

在example1.html中:

 <a href='example2.html?myVar1=42'>a link</a> <a href='example2.html?myVar1=43'>another link</a> 

或者根据需要用Javascript生成链接。 只要确保?varName =值以某种方式进入到example2.html的末尾。

然后,在example2.html中,使用Javascript来parsingexample2附带的查询string。

要做到这一点,你可以尝试Querystring。

 // Adapted from examples on the Querystring homepage. var qs = new Querystring(); var v1 = qs.get("myVar1"); 

或者,parent.document.URL包含您所在页面的完整URI。 你可以提取:

 parent.document.URL.substring(parent.document.URL.indexOf('?'), parent.document.URL.length); 

并手动parsing它以将您编码的variables拉入URI中。

编辑:忘了'新的Querystring()'的'新'部分。 糟糕!

HTML / HTTP是无状态的,这意味着,你在前一页做过/看到的,与当前页面完全断开连接。问题是如何在前端的两页之间传递variables。 (因为HTTP是无状态的,所以每次加载页面时,都会使用JavaScript中设置的任何初始值,不能在JS中设置全局variables,只需在加载页面后保持该值。

有几种方法可以将值存储在其他位置,以便您可以使用JavaScript在加载时对其进行初始化)

1) – 简单的使用前端存储,配备任何浏览器(Cookie,会话存储,本地存储),并把价值放在一个页面,并在其他的价值。 考虑到:

Cookie保存数据,直到您确定的时间,

会话存储保存数据,直到浏览器默认选项卡closures。

本地存储保存数据,直到浏览器完全closures,并在选项卡(页面)之间共享数据它存储的数据没有过期date,只能通过JavaScript清除,或清除浏览器caching/本地存储的数据 – 不像Cookie过期。

2) – 通过Ajax渲染函数生成元素时添加属性

 <a href='example2.html?action=getAll&element=product&id=1'>a link</a> <a href='example2.html?action=getAll&element=product&id=2'>another link</a> 

– >然后点击这个元素构造“URL /? action = getAll&element = product&id = 1“,在第二个页面中,你可以parsing这个URL,并用适当的参数调用合适的Ajax。

您可以使用Cookie和Querystring来交换值。