在IE8中,Excanvas.js不适合我

Excanvas.js doesn't work for me in IE8

本文关键字:js 不适合 Excanvas IE8      更新时间:2023-09-26

尝试使画布效果在IE8中工作。使用excanvas.js在IE7中没有问题,但在IE8中,它不起作用。这个效果被命名为ECOTree,我已经做了所有的技巧和所有的修改。有什么建议在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);
    }
}

你张贴的东西看起来都不正确,你需要提供更多的细节,但是我可以说你的很多代码是多余的。

// 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当浏览器是旧的

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