【发布时间】:2011-06-18 23:32:48
【问题描述】:
是否可以在浏览器窗口的单个选项卡中运行多个 javascript 解释器(引擎)?怎么样?
我查看了 iframe,但无法调用 javascript 解释器的单独实例。
【问题讨论】:
-
为什么需要这样做? IFrame 通常相当混乱。您的问题可能有更好的解决方案
标签: javascript html browser
是否可以在浏览器窗口的单个选项卡中运行多个 javascript 解释器(引擎)?怎么样?
我查看了 iframe,但无法调用 javascript 解释器的单独实例。
【问题讨论】:
标签: javascript html browser
您可能想查看Web Workers。这些分区执行 Javascript,但有非常明确的交互方式。
【讨论】:
每个不同的页面都有自己的全局环境。相关页面以各种方式链接(window.parent、框架元素等)。如果父页面包含一个二级页面作为<iframe> 标记的内容(或者在旧式框架集设置中,我已经十多年没有这样做了:-),那么框架中的页面都有自己的不同的window 对象,以及它们自己的框架、工具等副本。
当您执行document.getElementById("whatever") 之类的操作时,它仅限于调用它的全局上下文。同样,每个框架都有自己的 JavaScript 环境,以及各种 JavaScript“本机”构造函数的独特副本。也就是说,一帧中的“数组”与另一帧中的“数组”是不同的对象。
@Jarrod N 提到的网络工作者可能也让你很感兴趣。
【讨论】:
正如 Pointy 所说,每个不同的页面都有自己的全局环境。所以 iframe 也有自己的 Javascript 环境。
我对 iframe 的测试失败了,因为我没有等待 iframe 中的 Javascript/网页完全加载,然后才从主页调用它。
附言WebWorkers 有点复杂,对我的项目想要的支持较少。不过,它看起来是未来项目的一个很好的解决方案。
【讨论】: