Я использую элемент canvas для рисования чего-либо в WebPart в SharePoint, потому что 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 еще не готов. Верно ли это? Или по другим причинам, которые могут вызватьэта проблема? Спасибо!
Реальная ситуация сложнее, чем этот простой тест, и эта проблема более очевидна.