我目前有一个按钮,它使用window.open("newpage.html")
在新选项卡中打开一个新窗口。。。我在子窗口中使用childVar = window.opener.parentGlobalVar
从父窗口检索一些全局变量的值。现在,我被要求在与父窗口相同的选项卡中打开新窗口,并包含一个"返回"按钮以返回父窗口。
到目前为止,我的尝试还没有成功,我尝试使用_top或_self作为window.open
、window.location
和location.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>