文档和document.cookie之间的范围差异

时间:2015-11-20 12:52:30

标签: javascript cookies

我在这里有一个简单的疑问:

文档对象范围在浏览器选项卡中:我的意思是如果我设置 document.tab1 ='tab1'在一个浏览器标签中,它在其他标签中无法使用。

但是document.cookie不同,它会在标签之间保留。

但是它被定义为文档的属性,但是如果我从一个浏览器选项卡中添加一个cookie条目,则可以从其他选项卡访问此条目。我理解为文档对象范围在选项卡内。但这里有一个文档& #39; s属性由其他人共享。我知道documentwindow个对象有类似的实例,它们是默认属性或对象。

为什么cookie喜欢在浏览器标签中具有范围的对象,定义为在document等标签中限制范围的对象的属性?

或者纠正我的理解。

1 个答案:

答案 0 :(得分:1)

  

为什么类似cookie的对象在浏览器选项卡中具有范围,定义为在document之类的选项卡中限制范围的对象的属性?

他们没有。每个标签都有自己的document.cookielocalStoragewindow.name。它们在不同的(JS)环境中运行,作为不同事件循环的一部分。

当然,每个getter / setter都访问浏览器管理的相同的domain,page或tab特性属性,但它只是一个JS接口;因此它位于JS运行时中的某个JS对象上。