在和父项相同的选项卡中打开窗口,使用来自父项的变量
open window in same tab as parent, with variables from parent
我目前有一个按钮,它使用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>
- AngularJS中的封装窗口全局变量
- ngDialog-弹出窗口未更新范围变量
- 在Backbone.js中为窗口对象指定变量
- Cartodb信息窗口未在地图上显示变量
- 链接中有php变量的Javascript打开窗口
- 如何将变量传递到'窗口.打开'
- 将php文件加载到弹出窗口中,并将php变量发布到该弹出窗口中(使用onclick)
- 在加载时调用时,窗口对象的某些变量丢失
- 清除 Javascript 中窗口对象中的自定义变量
- jQuery / Colorbox - 在弹出窗口中将一个 java 变量传递给 PHP 变量
- 在 AngularJS 和非 AngularJS 弹出窗口之间共享变量
- 如何将宽度和高度变量设置为浏览器窗口的宽度和高度
- 使用变量搜索窗口中的属性使用'在'中;
- 全局变量只是“窗口”对象的属性吗?
- 传递 PHP 变量 JavaScript 窗口位置
- 使变量像窗口一样可访问
- 我如何得到一个数学表达式在一个变量与窗口提示
- Javascript变量的窗口作用域与应用作用域
- 我应该把变量在窗口.文档或使用全局上下文
- 如何发送变量与窗口.打开JavaScript函数