Uzyskiwanie zgodności z IE8 z EaselJS i ExplorerCanvas

Używam EaselJS i chcę umożliwić wsteczną kompatybilność z ExplorerCanvas.

Powinno to być możliwe przy użyciu następującego kodu (patrztutaj):

createjs.createCanvas = function () { ... return canvas implementation here ... }

Jeśli jednak wprowadzę alert w tej funkcji i uruchomię kod, funkcja nigdy nie zostanie uruchomiona.

Jak mam to zrobić?

Edytować:

Oto uproszczony przykład kodu, którego używam:

<!DOCTYPE html>
<html lang='en'>
<head>
    <meta charset='utf-8' />
    <script src='/Scripts/jquery-1.7.1.js'></script>
    <script src="/Scripts/excanvas/excanvas.compiled.js"></script>
    <script src="/Scripts/easeljs/lib/easeljs-0.5.0.min.js"></script>
    <script src='/Scripts/core/jquery.mousewheel.js'></script>
    <style>
        canvas
        {
            border: 1px solid #ccc;
        }
    </style>
    <script type='text/javascript'>
        $(document).ready(function () {
            // Variables
            var img;
            var stage;
            var bmp;

            // Bindings
            $('#load').click(function () { initialize() }); // DELETE

            // Functions

            function initialize() {
                img = new Image();
                img.onload = imageLoadedEvent;
                img.src = '/Scripts/viewer/June.jpg';
            }

            function imageLoadedEvent() {
                var canvasElement = generateContext('testCanvas', 400, 400);

                stage = new createjs.Stage('testCanvas');
                bmp = new createjs.Bitmap(img);

                stage.autoClear = true;
                stage.addChild(bmp);
                stage.update();
            }

            function generateContext(canvasID, width, height) {
                var canvasElement = document.createElement('canvas');

                if (typeof (G_vmlCanvasManager) != 'undefined')
                    canvasElement = G_vmlCanvasManager.initElement(canvasElement);

                canvasElement.setAttribute("width", width);
                canvasElement.setAttribute("height", height);
                canvasElement.setAttribute("id", canvasID);

                document.getElementById('viewer').appendChild(canvasElement);
            }
        });
    </script>
</head>
<body>
    <div id='viewer'>
        <button id='load'>load</button>
    </div>

</body>
</html>

Ten przykład zostanie uruchomiony w Chrome i IE9, ponieważ tworzony jest i używany rodzimy element canvas. Jednak w IE8 zawodzi.

questionAnswers(2)

yourAnswerToTheQuestion