用户会话到期时所有窗口都需要关闭如何?

时间:2017-01-06 03:50:35

标签: javascript jquery jsfiddle session-storage

我试图用会话存储关闭窗口,它不工作y ??

对我来说,我在不同的&&和不同的模块,所以我不能维护“Var”,因为我在全球范围内为我的应用程序使用会话存储

<html>
<body>

<button onclick="openWin()">Open "myWindow"</button>
<button onclick="closeWin()">Close "myWindow"</button>

<script>
var my1;


function openWin() {
my1 = window.open("", "myWindow", "width=200,height=100");
alert(my1)
sessionStorage.setItem('aa',my1);

}

function closeWin() {
var retrievedObject = sessionStorage.getItem('aa');
retrievedObject.close();
}
</script>

</body>
</html>

1 个答案:

答案 0 :(得分:0)

我为您here在plunker中创建了一个工作版本。

但是,您需要考虑以下几点:如果您的代码在选项卡内运行并且关闭,那么您的代码将永远不会关闭其他窗口,用户必须关闭它们。

BTW:您的代码在stackoverflow内无法正常工作,因为它是sandboxed。 (你无法访问其中的会话存储空间)

更新

因为my1是对窗口实例的引用,所以当你把它放在sessionStorage中时,它会松开引用。因此,我唯一想到的就是将它存储在本地。看看更新的plunker。