javascript - document 和 document.cookie 之间的范围差异

标签 javascript cookies

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

文档对象范围位于浏览器选项卡内:我的意思是如果我设置 document.tab1 ='tab1' 在一个浏览器选项卡中 它在其他选项卡中不可用。

但是 document.cookie 不同,它跨选项卡持续存在。

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

为什么 cookie 之类具有跨浏览器选项卡范围的对象,定义为范围仅限于 document 等选项卡内的对象的属性?

或者纠正我的理解。

最佳答案

Why cookie-like objects having scope across browser tabs, defined as a property of objects which have scope restricted within a tab like document?

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

当然,每个 getter/setter 都会访问浏览器管理的相同域、页面或选项卡特定属性,但它只是一个 JS 接口(interface);因此它位于 JS 运行时中的某个 JS 对象上。

关于javascript - document 和 document.cookie 之间的范围差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33827210/

相关文章:

javascript - jQuery this.html() 返回未定义

javascript - 使用正则表达式过滤掉不符合条件的单词

javascript - 当 eventListener 附加到 IE 8 中的相同元素时如何停止事件传播?

javascript - RoundRobin 功能方法 - 为什么我的功能有副作用?

javascript - 基于 jquery cookie 的操作

c# - HttpContext.Authentication.SignOutAsync 不会删除身份验证 cookie

javascript - 使用事件时在关闭 body 标签之前使用 script 标签的优点

security - 是否建议将散列密码存储在 cookie 中?

javascript - Angular Cookies.remove 不起作用

java - 无效的 cookie header : Unable to parse expires attribute when expires attribute is empty