2

我正在使用 jQuery$.getScript()方法将脚本动态加载到文档中,例如,$.getScript("excanvas.js", function(data){});

在创建画布上,我为画布应用了以下语句,

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>

我找不到原因。任何人都可以提出解决方案吗?

4

2 回答 2

2

我用过它,它对我有用:

if ($.browser.msie) {
      G_vmlCanvasManager.initElement(canvasDiv);
}

完成最上面的步骤后,获取画布的上下文:

context = canvasDiv.getContext('2d');

context现在使用变量画线。

于 2013-07-10T13:06:15.163 回答
0

如果您希望异步/有条件地加载 excanvas,这可能的。

首先,如说明所述,在excanvas加载和初始化之后,canvas 元素不能存在于页面上,因此请考虑在之后生成它们或异步加载它们。

一旦加载了 excanvas 库(通过 jQuery、requirejs 等),调用它:

G_vmlCanvasManager.init_(document);

这会调用管理器的内部初始化函数,该函数通常会侦听准备好的文档(通常已经触发)。

于 2013-08-29T21:01:42.563 回答