我可以在localStorage中保存一个窗口对象吗?

can I save a window object inside a localStorage

本文关键字:一个 窗口 对象 localStorage 保存 我可以      更新时间:2023-09-26

基本上我想用一个按钮打开一个页面,然后用另一个按钮结束这个页面。

我认为它将页面对象保存为文本,有什么办法吗?

<button onClick="initiate()">open page</button>
<button onClick="kill()">kill page</button>

<script>
function initiate()
{
var w=window.open("https://www.google.com/");
localStorage.setItem('urlmem', w);
}
function kill()
{
a = localStorage.getItem('urlmem')
prompt(a)
a.window.close()
}
</script>

我可以在localStorage中保存一个窗口对象吗

localStorage只能存储字符串,window对象不能序列化为字符串。即使它们是,也没有API来从字符串重新创建window对象。

有什么办法吗?

看起来你根本不需要持久存储。只需将引用保存在两个函数都可见的变量中。

var w;
function initiate() {
    w = window.open(...);
}
function kill() {
    w.close();
}

有更好的方法来组织你的代码,但这应该给你一个想法。