Javascript 我可以将窗口对象保存在localStorage中吗

Javascript 我可以将窗口对象保存在localStorage中吗,javascript,Javascript,基本上,我想用一个按钮打开一个页面,然后用另一个按钮终止该页面 我认为它将页面对象保存为文本,不管怎样 <button onClick="initiate()">open page</button> <button onClick="kill()">kill page</button> <script> function initiate() { var w=window.open("https://www.google.com/"

基本上,我想用一个按钮打开一个页面,然后用另一个按钮终止该页面

我认为它将页面对象保存为文本,不管怎样

<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>
打开页面
终止页面
函数初始化()
{
var w=窗口打开(“https://www.google.com/");
setItem('urlmem',w);
}
函数kill()
{
a=localStorage.getItem('urlmem')
提示(a)
a、 window.close()
}
我可以将窗口对象保存在localStorage中吗

否。

localStorage
只能存储字符串,并且
window
对象不能序列化为字符串。即使是这样,也没有API可以从字符串中重新创建
窗口
对象

有什么办法吗

<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>
看起来您根本不需要持久性存储。只需将引用保存在两个函数都可见的变量中

var w;

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

function kill() {
    w.close();
}
有更好的方法来组织代码,但这应该会让您产生想法

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

否。

localStorage
只能存储字符串,并且
window
对象不能序列化为字符串。即使是这样,也没有API可以从字符串中重新创建
窗口
对象

有什么办法吗

<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>
看起来您根本不需要持久性存储。只需将引用保存在两个函数都可见的变量中

var w;

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

function kill() {
    w.close();
}

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

你可以将w保存在某个地方并调用.close()。你可以将w保存在某个地方并调用.close()。