动态地在页面中插入 iframe,再获取里面的 canvas 元素,想要设置其尺寸。但是跨域报错了:
Uncaught DOMException: Blocked a frame with origin "null" from accessing a cross-origin frame.
let iframeNew = `<iframe src="source/${entity}.html" id="sourceAni" name="source"></iframe>`;
$('#meaning').prepend(iframeNew);
$('#sourceAni').on('load', function() {
console.log(document.getElementById('sourceAni').contentWindow.document.getElementById('canvas'));
});
在网上查到的解决办法都是把页面放到服务器环境运行,但是我做的项目要求可以离线使用。请问各位还有什么办法吗?
后来我把调整画布尺寸的脚本引入到子页面,解决了问题。
postMessage 的方式我在网上也看到了,但是我并不是想父子页面通信,就是想在父页面获取到 iframe 里的元素。因为我在子页面设置 canvas 尺寸时,画布变成了白布……