如何在两个HTML页面之间交换variables?
我有两个HTML页面, example1.html
和example2.html
。
如何使用查询string将example1.html
variables传递给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来交换值。