gpt4 book ai didi

javascript - 浏览器会为 iframe 提供一个单独的 JavaScript 线程吗?

转载 作者:IT王子 更新时间:2023-10-29 02:59:07 58 4
gpt4 key购买 nike

网络浏览器是否为 iframe 中的 JavaScript 使用单独的执行线程?

我相信 Chrome 为每个选项卡使用单独的线程,所以我猜测 iframe 中的 JavaScript 会与其父窗口共享相同的线程,但是,这似乎也存在安全风险。

最佳答案

最近测试了在 iFrame 中运行的 JavaScript 是否会阻止 JavaScript 在父窗口中运行。

iFrame 与父域在同一域中:

  • Chrome 68.0.3440.84: block
  • Safari 11.0.2 (13604.4.7.1.3): block
  • iOS 上的 Safari 15.1: block
  • Firefox 96: block

iFrame 在与父域不同的域上

  • Chrome 68.0.3440.84:不阻止
  • Safari 11.0.2 (13604.4.7.1.3):Blocks(过时,但我没有 macbook)
  • iOS 上的 Safari 15.1:不阻止
  • Firefox 96:不阻止
  • Chrome for Android 96:有时阻止,有时不阻止(Chrome for Android 中有一些复杂的规则决定 Chrome for Android 何时隔离和不隔离进程,请参阅 chrome://process -internalschrome://flags)

parent.html:

    <body>
<div id="count"></div>
<iframe src="./spin.html"></iframe>
<script>
let i = 0;
let div = document.getElementById("count");
setInterval(() => {
div.innerText = i++;
}, 100);
</script>
</body>

spin.html:

    <body>
<button id="spin">spin</button>
<script>
const spin = document.getElementById("spin");
spin.addEventListener('click', () => {
const start = Date.now();
while (Date.now() - start < 1000) { }
})
</script>
</body>

关于javascript - 浏览器会为 iframe 提供一个单独的 JavaScript 线程吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11510483/

58 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com