我正在尝试在页面顶部绘制一个巨大的画布矩形(某种灯箱背景),代码非常简单:
var el = document.createElement('canvas');
el.style.position = 'absolute';
el.style.top = 0;
el.style.left = 0;
el.style.zIndex = 1000;
el.width = window.innerWidth + window.scrollMaxX;
el.height = window.innerHeight + window.scrollMaxY;
...
document.body.appendChild(el);
// and later
var ctx = el.getContext("2d");
ctx.fillStyle = "rgba(0, 0, 0, 0.4)";
ctx.fillRect(0, 0, el.width, el.height);
有时(并非总是)最后一行抛出:
组件返回失败代码:0x80004005 (NS_ERROR_FAILURE) [nsIDOMCanvasRenderingContext2D.fillRect]
我一直在猜测是否会因为图像大小或画布下方的内容类型(例如嵌入视频播放)而发生这种情况,但显然不是。
因此,我正在寻找有关如何隔离和/或解决此问题的任何想法。