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

时间:2014-03-19 18:30:32

标签: javascript

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

我认为它将页面对象保存为文本,无论如何都是这样的?

<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>

1 个答案:

答案 0 :(得分:4)

  

我可以在localStorage

中保存一个窗口对象

否。

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

  是什么方式?

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

var w;

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

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

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