我知道Window对象是浏览器(标签),其一切所附的“主”客体 - 核心方法,全局声明的变量,函数,即使是DOM。它高于一切。Window对象和属性持久性
当我去到不同的网页在同一个浏览器窗口(标签),我想在window对象保持不变(仅DOM的变化),因为历史和其他东西是可访问的。为什么我不明白为什么连接到窗口对象的全局变量(即使使用window.myvariable
)不能保留。
对我来说唯一可能的解释是因为它是这样做的。如果是这样,请执行“非核心”窗口元素(由代码设置的方法和变量)被擦除;是每一个新的页面访问窗口对象的新实例(听起来最明显的方式给我)或...?
我在这个问题上找不到任何有用的信息,通常人们只知道你不能在页面之间传递变量(cookies,web存储,窗口标题除外),但为什么/如何(机制,不是原因)这种情况很难得到。谢谢。
你的假设是错误的,每个标签都有自己的'window'对象。另外,'window'上面有浏览器本身,例如'history'和许多其他对象基本上来自哪里。 – Teemu
已编辑,所以它提到了选项卡。我引用“主”这个词来表示它不是真正的主人,但我明白你的观点,它并不是一切。但是在同一个标签中,它仍然是网页上所有内容的主要对象,以及与浏览器的所有网页交互都经历了哪些主对象。因此“主人”。 – RonS
我的观点实际上是“每个选项卡都有自己的窗口对象”,浏览器就在那里指向,“窗口”是其中的一部分对象。您也可以将变量(或至少是值)传递给其他窗口,这仅受安全功能的限制。如果您使用JS在新选项卡/窗口中的相同域中打开页面,则还可以与其窗口对象进行交互。 PostMessage甚至可以与跨域iframe进行交互。 – Teemu