excanvas.js有时无法在IE中绘制

时间:2012-03-30 07:51:25

标签: javascript jquery sharepoint excanvas

我使用canvas元素在SharePoint中的WebPart中绘制内容,因为IE不支持它,所以我将excanvas.js导入页面。但有时,WebPart没有显示任何内容。所以我创建了一个测试WebPart找到原因。 一个简单的js函数来绘制一个矩形:

function drawRectangle(){
var canvas = document.getElementById("myCanvas");
var ctx = null;
if(canvas.getContext){
    ctx = canvas.getContext("2d");
    ctx.fillRect(30,30,100,100);
}else{
    document.write("sorry.");
}

}
在c#文件中,我这样写:

    protected override void RenderContents(HtmlTextWriter writer)
    {
        StringBuilder htmlBuilder = new StringBuilder();
        htmlBuilder.Append("<canvas id='myCanvas' width='300' height='300'></canvas>");
        htmlBuilder.Append("<script type='text/javascript'>");
        htmlBuilder.Append("$(document).ready(function(){drawRectangle();})");
        htmlBuilder.Append("</script>");
        writer.Write(htmlBuilder.ToString());
    }  

问题再次发生,有时它会显示“抱歉”,而不是矩形,所以我猜可能,当drawRectangle()函数开始工作时,excanvas.js尚未准备好。是真的吗?或其他可能导致此问题的原因?谢谢!
真实情况比这个简单的测试更复杂,这个问题更加明显。

0 个答案:

没有答案