单个浏览器选项卡中的多个JavaScript解释器

3

在浏览器窗口的单个选项卡中运行多个JavaScript解释器(引擎)是否可能?如何实现?

我已经研究了iframe,但是无法调用JavaScript解释器的单独实例。


你为什么需要这样做呢?IFrames通常会比较混乱。也许有更好的解决方案来解决你的问题。 - Raynos
3个回答

4
您可能想了解Web Workers。它们能将JavaScript的执行分段,但有着明确的交互方式。

2
哇,每天都能学到新东西...我很高兴偶然发现了这个+1。 - tobyodavies

2
每个不同的页面都有自己的全局环境。相关页面以不同的方式链接(如window.parent,框架元素等)。如果父页面将次级页面包含在<iframe>标签中作为内容(或在旧样式的框架设置中,这是我十多年来没有做过的事情:-)),则框架中的页面都有自己独立的window对象和它们自己的框架、工具等的副本。
当您执行像document.getElementById("whatever")这样的操作时,它只限于从中调用的全局上下文。同样,每个框架都有自己的JavaScript环境,具有各自不同的各种JavaScript“本机”构造函数的副本。也就是说,在一个框架中的“Array”是与另一个框架中的“Array”不同的对象。
@Jarrod N提到的Web Workers也可能对您非常有兴趣。

0
正如Pointy所说,每个不同的页面都有自己的全局环境。因此iframe也有自己的Javascript环境。
我的iframe测试失败是因为在从主页面调用之前,我没有等待iframe中的Javascript/网页完全加载。
附注:WebWorkers稍微复杂,并且对于我想要的项目支持较少。但它似乎是未来项目的好解决方案。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接