在IE8中,Excanvas.js对我不起作用

时间:2011-08-12 13:51:34

标签: javascript canvas internet-explorer-8 excanvas

尝试在IE8中使画布效果起作用。使用excanvas.js在IE7中没有问题,但在IE8中,它不起作用。效果命名为ECOTree,我已经将所有技巧和所有修改都包括在内here。有任何建议在IE8中运行此效果吗?

以下是ecotree.js中ie8的修改代码:

// Make the <canvas> element.
var canvas = document.createElement('canvas');
jQuery(canvas).attr('width', 2000).attr('height', 7000).attr('id', 'ECOTreecanvas').appendTo(this.treeContainer);
if ((jQuery.browser.msie) && (parseInt(jQuery.browser.version, 10)<=8)){
    // For Internet Explorer, have excanvas initialize the canvas method
    // Modification, the major versions greater than 8 don't need excanvas.
    canvas.setAttribute('width', '2000');
    canvas.setAttribute('height', '7000');
    canvas.setAttribute('id', 'ECOTreecanvas');
    this.treeContainer.append(canvas);
    if (typeof G_vmlCanvasManager != 'undefined') {
        canvas = G_vmlCanvasManager.initElement(canvas);
    }
}

2 个答案:

答案 0 :(得分:-1)

您发布的内容看起来不正确,您需要提供更多详细信息,但我可以说您的许多代码都是多余的。

// Make the <canvas> element.
var canvas = $('<canvas id="ECOTreecanvas" width="2000" height="7000"></canvas>').appendTo($(this.treeContainer));
if (typeof G_vmlCanvasManager != 'undefined') {
    G_vmlCanvasManager.initElement(canvas);
}

我假设你在浏览器旧时只包含excanvas。

答案 1 :(得分:-1)

我通过强制事件更新canvas元素来解决了这个问题。我知道这是一种非正统的机制,但显然用jquery ready方法更新是不够的