我有一段代码,主要是用HTML5里面的canvas来进行一些绘图工作,这个页面包在一个iframe里面,设置:display:none。这段代码在IE9和chrome10里面工作的很正常,但是在firefox3.6或者4下面则报错:Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIDOMCanvasRenderingContext2D.font]" nsresult: "0x80004005 (NS_ERROR_FAILURE)"根据调试发现不出什么问题,font的数据也正常,但就是不行,猜测可能是因为页面不可见的情况下才会出现这样的错误,于是将display设置为"",结果一切正常!请问该如何解决这个问题?
下面可能有用的解决方案你可以试试看。
1.将canvas包在一个div里,设置div为display:none或者visibility:hidden试试看。
2.将包在canvas外面的div设置成overflow:hidden;然后把height,width都设置成0px,一样可以达到不可见的效果
谢谢,但是这篇文章我已经看过了。
“所以最后的总结就是,这个错误和你没有关系,错误的根源是 firefox ,所以你就不必头疼了,呵呵!”
很遗憾,我仍然很头疼,因为当出现了这个错误的时候程序就不能继续向下了,这个错误会导致整个脚本不能正常工作……
我现在有一个父/子页面,父通过iframe包住子页面,子页面一开始并不会显示出来,然后子页面里面有canvas进行一些绘图工作,完成以后才会显示出来。在子页面不可见的情况下绘制canvas貌似就有这样的错误。
并且在我设置了阴影,然后使用渐变:
gradient.addColorStop(0.1, "rgba(" + color + ",1)");
gradient.addColorStop(0.2, "rgba(" + color + ",0)");
这种情况下,绘制的文本从0到0.2都是正常的,0.2以后的都不可见(透明度为0),但是阴影却还有……
其他的问题如5L所述,能帮忙解决的在加100分!
感觉firefox好头痛!