相关疑难解决方法(0)

框架和iframe是否具有隔离的javascript上下文?

我在Chrome上做了一些实验,但我不确定所以我需要确认:

我是否认为iframe和框架具有单独的JavaScript上下文,这使得它们无法在这些框架/ iframe之间共享变量?

为了简化,我们假设客户端将始终是Chrome的相同版本(这是我的情况)

html javascript

8
推荐指数
3
解决办法
3407
查看次数

在单独的进程中创建 iframe,这样它就不会阻塞父窗口的主线程

我最近听说rel="noopener"可以添加到锚标记的属性值,以便新窗口在单独的进程中运行。这让我想知道:是否可以创建一个在单独进程中运行的 iframe,以便 iframe 中的无限循环不会导致父窗口的主线程被阻塞?

下面是一些观察主线程冻结的示例代码:

<progress></progress>
<iframe srcdoc="<script>function loop() { i=0; while(i<700000000){i++}; setTimeout(loop, 2000) }; loop();</script>"></iframe>
Run Code Online (Sandbox Code Playgroud)

https://jsbin.com/zabecoviwi/1/edit?html,输出

编辑:请注意,您可以通过向 iframe 添加属性来防止冻结sandbox,这似乎“强制”浏览器(至少是 Chrome)将 iframe 放在单独的线程中,但在我的情况下我不能这样做。然而,我在一个单独的子域下提供 iframe 的代码,所以我认为,由于它是一个单独的源,Chrome 会将其放入一个单独的进程中,就像 iframe 是src不同的顶级域时那样。

html javascript

5
推荐指数
1
解决办法
3264
查看次数

标签 统计

html ×2

javascript ×2