我有两个 HTML 页面,example1.html
以及example2.html
.
如何使用查询字符串将变量从 传递example1.html
到example2.html
,并在example2.html
不使用任何服务器端代码的情况下检索该变量?
我有两个 HTML 页面,example1.html
以及example2.html
.
如何使用查询字符串将变量从 传递example1.html
到example2.html
,并在example2.html
不使用任何服务器端代码的情况下检索该变量?
在example1.html中:
<a href='example2.html?myVar1=42'>a link</a>
<a href='example2.html?myVar1=43'>another link</a>
或根据需要使用 Javascript 生成链接。只要确保 ?varName=value 以某种方式进入 example2.html 的末尾。
然后,在example2.html 中,您使用Javascript 来解析example2 附带的查询字符串。
为此,您可以尝试使用 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);
并手动解析它以将您编码的变量提取到 URI 中。
编辑:忘记了“new Querystring()”的“new”部分。oop...
HTML/HTTP 是无状态的,这意味着,你在上一页所做的/看到的,与当前页面是完全断开的。问题是如何在前端的两个页面之间传递变量。(由于 HTTP 是无状态的,每次加载页面时,它都会使用您在 JavaScript 中设置的任何初始值。您不能在 JS 中设置全局变量,并在再次加载页面后简单地保留该值。
有几种方法可以将值存储在另一个位置,以便您可以在加载时使用 JavaScript 对其进行初始化)
1) - 简单地使用前端存储,它配备任何浏览器(Cookie、会话存储、本地存储 - 出于安全原因可在整个域中使用 -> 这意味着您只能为一个域保存此存储上的数据,另一个域可以) t 访问此数据)并将value放在一页中并在其他页面中获取value。考虑到:
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。
您可以使用 cookie 和 Querystring 来交换值。