在与父项相同的选项卡中打开窗口,其中包含父项的变量

时间:2013-12-16 17:09:12

标签: javascript tabs window parent-child window.open

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

到目前为止,我尝试这样做并没有奏效,我尝试使用 _top _self 作为window.open的参数,{{1} }和window.location ...所有这些都无法从父级检索所需的变量;我假设当我在同一个选项卡中打开一个新页面时,这些值被清除。有没有办法可以存储这些值(客户端)或将它们传递给新窗口,如果它在同一个选项卡中打开?

3 个答案:

答案 0 :(得分:2)

你做不到。

卸下window(页面)后(当标签导航到新页面时),它不再存在。

相反,您可以在查询字符串中传递数据。

答案 1 :(得分:1)

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

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

有点像饼干,但也有风险。我建议你稍微研究一下,例如here

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

编辑@comment:

清除您可以使用的整个存储空间:

localStorage.clear();

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

答案 2 :(得分:0)

可以试用window.close("newpage.html")方法..这会关闭“newpage.html”(后退按钮)并返回到原始页面(然后他们只需点击他们用来打开“newpage.html”的链接“如果需要查看页面或返回选项卡是必要的..
代码类似于:

<p>Click to close and return to last page.</p>
<button onclick="myFunction()">close</button>

<script>

function myFunction()
{
window.close("newpage.html");
}
</script>