Javascript Internet Explorer 10画布剪裁意外行为

Javascript Internet Explorer 10画布剪裁意外行为,javascript,html,canvas,clipping,Javascript,Html,Canvas,Clipping,在html5画布应用程序中,我使用剪辑重新绘制画布的受损部分,如下所示: ctx.beginPath(); ctx.rect(30, 30, 100, 100); ctx.rect(100, 100, 100, 100); ctx.clip(); ctx.clearRect(0, 0, 600, 400); 我还创建了一个示例来说明这个问题。在除IE10外的所有功能浏览器上,它将显示两个黑色重叠矩形 现在的问题是,这是一个IE10错误,还是因为它更严格地遵守了标准,这实际上是预期的行为,只是幸

在html5画布应用程序中,我使用剪辑重新绘制画布的受损部分,如下所示:

ctx.beginPath();
ctx.rect(30, 30, 100, 100);
ctx.rect(100, 100, 100, 100);
ctx.clip();
ctx.clearRect(0, 0, 600, 400);
我还创建了一个示例来说明这个问题。在除IE10外的所有功能浏览器上,它将显示两个黑色重叠矩形


现在的问题是,这是一个IE10错误,还是因为它更严格地遵守了标准,这实际上是预期的行为,只是幸运的是,它可以在其他浏览器中工作。如果是这样,正确的方法是什么?

您需要调用ctx.fill();最后,这是IE10中的一个bug。我在这里发布了一个类似的问题:


微软说,“是的,这是一个bug。等我们修复它好几年。”这对微软来说太糟糕了,其他浏览器现在都可以工作了。

对于这个明显的IE10 bug,一个可能的规避方法是逐个清除矩形。一个优点:它的速度更快,因为它不需要设置剪辑

否,我想清除此部分以重新绘制它,例如,使用一些drawImage调用图像,这些图像与受损区域重叠,但不应在剪辑区域外绘制。清除(也不重新绘制)是不可能的,因为IE10没有像其他浏览器那样剪裁该区域。这实际上是正确的。谢谢你。它仍然不工作,一旦你有一个不规则的剪辑,如三角形,所以这个问题仍然是一个恼人的错误!