这听起来很可笑,但在某些情况下,我们需要在 iframe
之间共享 JavaScript 对象
。
当我们尝试使用 localStorage
来达到目的时,人们说某些浏览器可能不支持它。即使他们支持 localStorage,用户也可能会减少存储容量等等。 .
所以我的问题是,我们是否有解决方案/替代方案来跨 iframe
共享 JavaScript
对象
下面的例子可能会让我们达成共识
parentpage.html
<html>
...
<head><script src="script1.js" type="text/Javascript"></script></head>
<body>
...
<iframe src="childpage.html"></iframe>
</body>
</html>
childpage.html
<html>
...
<head><script src="script2.js" type="text/Javascript"></script></head>
...
</html>
注意:
parentpage.html、childpage.html、script1.js、script2.js 位于同一域和同一位置
假设 script1.js 使用需要公开的 JavaScript 对象
。
由于浏览器/UserAgent 为页面中使用的每个额外的 iframe
创建了一个单独的 Window 对象
,我们无法访问 Public JavaScript Object
如果我们将它附加/扩展到 Window 对象/Document 对象
,它的最后希望似乎消失了!
是否有任何解决方案/解决方法?
最佳答案
正如@Pointy 建议的那样,LocalStoage
跨框架共享数据的最佳替代方法是使用 window.top
Property/Member/Object
但是,该属性仍然是 ReadOnly,如 mozilla 开发文档中所述,但我仍然想知道它是否无论如何都不会在将来严格强制不要将新成员/字段添加到 window。顶部
关于javascript - 跨框架共享全局 javascript 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12915360/