gpt4 book ai didi

javascript - 在 Chrome 中的 iframe 沙箱内绑定(bind) javascript 事件

转载 作者:行者123 更新时间:2023-11-28 07:37:38 28 4
gpt4 key购买 nike

我正在尝试在 Chrome 中进行以下工作:http://jsfiddle.net/3es621uz/1/

HTML:

<iframe src="about:blank" id="iframe" sandbox="allow-same-origin"></iframe>

Javascript:

var b, i;
i = document.getElementById('iframe');
b = i.contentDocument.createElement('button');
b.innerHTML = 'Click me!';
b.addEventListener('click', function() {
return alert('Used to work!');
});
i.contentDocument.body.appendChild(b);

在某个时刻单击用于在 Chrome 中显示警报的按钮。它在 Firefox 中仍然有效,但在 Safari 中不起作用。有什么方法可以让我从外部绑定(bind) iframe 中的事件而不允许执行其中的脚本吗?

最佳答案

相关文档:https://github.com/mdn/browser-compat-data/pull/7153 ,我发现 Chrome 自版本 71 以来已经改变了其行为。

尝试发布消息时也会发生同样的问题:

iframe.contentWindow.addEventListener('message', console.log);
iframe.contentWindow.postMessage('what', '*');

// => throw "Blocked script execution in 'about:blank' because the document's frame is sandboxed and the 'allow-scripts' permission is not set"
// but it worked after Chrome 71

关于javascript - 在 Chrome 中的 iframe 沙箱内绑定(bind) javascript 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28414580/

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