我使用jQuery $.getScript()
方法动态地将脚本加载到文档中,例如$.getScript("excanvas.js", function(data){});
在创建画布上,我为canvas使用了以下语句,
var canvasDiv = document.createElement('canvas');
canvasDiv.setAttribute("width", canvasBounds.width+"px");
canvasDiv.setAttribute("height", canvasBounds.height+"px");
if(window.G_vmlCanvasManager){
canvasDiv = G_vmlCanvasManager.initElement(canvasDiv);
}
我尝试在画布上画一条线,但它不起作用。
如果我在脚本标记中加载excanvas.js,它的工作正常。就像
<head>
<script src="excanvas.js" type="text/javascript"></script>
</head>
我找不到原因。任何人都可以提出解决方案吗?
答案 0 :(得分:2)
我已经使用过它,它对我有用:
if ($.browser.msie) {
G_vmlCanvasManager.initElement(canvasDiv);
}
完成最后一步后,获取画布的上下文:
context = canvasDiv.getContext('2d');
现在使用context
变量绘制线条。
答案 1 :(得分:0)
如果您想要异步/有条件地加载excanvas, 是可能的。
首先,as the instructions state,画布元素不能存在于页面上,直到 AFTER excanvas已加载&amp;初始化,所以考虑生成它们或之后异步加载它们。
一旦excanvas库加载了(通过jQuery,requirejs,等等),请调用:
G_vmlCanvasManager.init_(document);
这会调用管理器的内部init函数,该函数通常会侦听文档就绪(通常已经触发)。