Javascript 如何在两个HTML页面之间交换变量?

Javascript 如何在两个HTML页面之间交换变量?,javascript,html,query-string,href,Javascript,Html,Query String,Href,我有两个HTML页面,example1.HTML和example2.HTML 如何使用查询字符串将变量从example1.html传递到example2.html,并在example2.html中检索该变量而不使用任何服务器端代码?您可以使用cookies和Querystring来交换值 在example1.html中: <a href='example2.html?myVar1=42'>a link</a> <a href='example2.html?myVar

我有两个HTML页面,
example1.HTML
example2.HTML


如何使用查询字符串将变量从
example1.html
传递到
example2.html
,并在
example2.html
中检索该变量而不使用任何服务器端代码?

您可以使用cookies和Querystring来交换值

在example1.html中:

<a href='example2.html?myVar1=42'>a link</a>
<a href='example2.html?myVar1=43'>another link</a>
或者,parent.document.URL包含您所在页面的完整URI。你可以提取:

parent.document.URL.substring(parent.document.URL.indexOf('?'), parent.document.URL.length);
并手动解析它以将编码的变量拉入URI


编辑:忘记了“new Querystring()”的“new”部分。哦…

HTML/HTTP是无状态的,这意味着,您在上一页上所做的/看到的与当前页完全断开连接。问题是如何在前端的两个页之间传递变量。(由于HTTP是无状态的,每次加载页面时,它都会使用JavaScript中设置的初始值。您不能在JS中设置全局变量,而只是在再次加载页面后保留该值

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

1) -简单使用前端存储,配备任何浏览器(Cookie、会话存储、本地存储-出于安全原因,在一个域中可用->这意味着您只能为一个域保存此存储上的数据,另一个域无法访问此数据),并在一个页面中输入值,在其他页面中获取值。 考虑到:

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

会话存储将保存数据,直到关闭浏览器默认选项卡

本地存储保存数据,直到浏览器完全关闭并在选项卡(页面)之间共享数据。它存储的数据没有过期日期,只能通过JavaScript清除,或者清除浏览器缓存/本地存储的数据—与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”“在第二页中,您可以解析此URL,并使用适当的参数调用适当的Ajax。

感谢您的回复,我尝试了第二种方法,您建议它工作正常,我编写了var a=parent.document.URL.substring(parent.document.URL.indexOf('myVar1=')、parent.document.URL.length);警报(a);但问题是,当我编写alert(a)时,我必须只将42存储到变量a中;它显示myVar1=42,但我如何快速浏览一眼就只显示42(我也是一个试图解决这个问题的初学者),示例代码的索引为0,正好在“?”之前。请将找到的索引保存到变量中。将字符串变量设置为变量的名称,以便可以测量length属性。然后在调用大小写的值时,它将是var myString=“?myVar1=“;然后是alert(a+myString.length);向右移动所需的字符数。可能重复的可能重复的可能重复的可能重复的可能重复的这是最好的答案
<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>