在和父项相同的选项卡中打开窗口,使用来自父项的变量

open window in same tab as parent, with variables from parent

本文关键字:变量 开窗口 选项      更新时间:2023-09-26

我目前有一个按钮,它使用window.open("newpage.html")在新选项卡中打开一个新窗口。。。我在子窗口中使用childVar = window.opener.parentGlobalVar从父窗口检索一些全局变量的值。现在,我被要求在与父窗口相同的选项卡中打开新窗口,并包含一个"返回"按钮以返回父窗口。

到目前为止,我的尝试还没有成功,我尝试使用_top_self作为window.openwindow.locationlocation.href的参数。。。所有这些都未能从父级检索到所需的变量;我假设当我在同一个选项卡中打开新页面时,这些值会被清除。如果新窗口在同一选项卡中打开,有没有方法可以存储这些值(客户端)或将它们传递给新窗口?

你不能那样做。

卸载window(页面)后(当选项卡导航到新页面时),它将不存在。

相反,您可以在querystring中传递数据。

您可以使用localStorage在客户端存储数据。

localStorage.setItem("bar", foo);
var x = localStorage.getItem("bar");

工作原理有点像饼干,但也有风险。我建议你研究一下,从这里开始

您基本上可以将所有内容存储在其中,例如您的引用URL。

编辑@评论:

要清除整个存储,您可以使用:

localStorage.clear();

并清除某个密钥/值对:localStorage.removeItem(key)在兼容性方面:caniuse.com相当不错。

可以尝试window.close("newpage.html")方法。。这将关闭"newpage.html"(返回按钮)并返回到原始页面(然后,如果需要查看页面或返回到选项卡,他们只需单击用于打开"newpagehtml"的链接。)。。
代码类似于:

<p>Click to close and return to last page.</p>
<button onclick="myFunction()">close</button>
<script>
function myFunction()
{
window.close("newpage.html");
}
</script>