Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript excanvas.js有时无法引入IE_Javascript_Jquery_Sharepoint_Excanvas - Fatal编程技术网

Javascript excanvas.js有时无法引入IE

Javascript excanvas.js有时无法引入IE,javascript,jquery,sharepoint,excanvas,Javascript,Jquery,Sharepoint,Excanvas,我在SharePoint中使用canvas元素在Web部件中绘制一些东西,因为IE不支持它,所以我将excanvas.js导入页面。但有时,Web部件什么也不显示。因此我创建了一个测试Web部件以查找原因。 用于绘制矩形的简单js函数: function drawRectangle(){ var canvas = document.getElementById("myCanvas"); var ctx = null; if(canvas.getContext){ ctx = canvas

我在SharePoint中使用canvas元素在Web部件中绘制一些东西,因为IE不支持它,所以我将excanvas.js导入页面。但有时,Web部件什么也不显示。因此我创建了一个测试Web部件以查找原因。
用于绘制矩形的简单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());
    }  
protectedoverride void RenderContents(HtmlTextWriter)
{
StringBuilder htmlBuilder=新StringBuilder();
htmlBuilder.Append(“”);
htmlBuilder.Append(“”);
Append($(document.ready(function(){drawRectangle();}));
htmlBuilder.Append(“”);
Write(htmlBuilder.ToString());
}  
问题再次出现,有时它会显示“对不起”,而不是矩形,所以我可能猜,当drawRectangle()函数开始工作时,excanvas.js还没有准备好。这是真的吗?或者其他可能导致此问题的原因?谢谢

真实的情况比这个简单的测试更复杂,这个问题也更明显。

这一行的分号在哪里:htmlBuilder.Append($(document.ready)(function(){drawRectangle();});”;你的问题是针对IE的吗?如何加载excanvas.js?是的,这只是在IE中。我使用“Page.ClientScript.RegisterClientScriptInclude”加载excanvas.js,但我可能会找到原因,在excanvas.js中,函数将初始化页面中的所有画布元素,因此,当$(document).ready开始工作时,excanvas.js可能尚未完成初始化。或者在excanvas.js的初始化过程中,我的画布尚未写入页面,因为SharePoint非常复杂。