excanvas.js没有使用动态加载脚本在IE上工作

时间:2013-07-10 12:47:33

标签: javascript jquery html5 internet-explorer excanvas

我使用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>

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

2 个答案:

答案 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函数,该函数通常会侦听文档就绪(通常已经触发)。