3

这听起来可能很荒谬,但在某些情况下我们需要JavaScript Objects分享iframe

当我们尝试localStorage用于服务目的时,人们说某些浏览器可能不支持它。即使他们支持 localStorage,用户也可能减少了存储容量等等......
所以我的问题是,我们有没有解决方案/Alternative to share JavaScriptObjects acrossiframe 下面的示例可能会让我们在同一页面上

父页面.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 Object需要公开的 a。

由于浏览器/UserAgent为页面中使用Window Object的每个附加项创建一个单独的,并且如果我们将其附加/扩展到,iframe我们无法访问它,它的最后希望似乎消失了!Public JavaScript ObjectWindow Object/Document Object

有什么解决方案/解决方法吗?

4

2 回答 2

2

正如@Pointy 建议的那样,LocalStoage跨帧共享数据的最佳替代方法是使用window.top属性/成员/对象

但是,正如 mozilla 开发文档中提到的那样,该属性是只读的,但我仍然想知道它是否不会在未来严格强制不添加新成员/字段window.top

参考:Mozilla 开发文档

于 2012-10-17T07:02:24.780 回答
1

可以通过 postMessage 跨属于多个域的多个 iframe 共享数据

于 2012-10-16T13:44:11.420 回答