excanvas.js не работает на IE с динамическим скриптом загрузки

Я динамически загружаю скрипт в документ с помощью 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 в тег script, он работает нормально. это как

<head>
<script src="excanvas.js" type="text/javascript"></script>
</head>

Я не могу найти причину. Кто-нибудь может предложить решение?

2 ответа

Я использовал это, и это работает для меня:

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

После выполнения верхнего шага, получите контекст холста:

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

Теперь нарисуйте линию, используя context переменная.

Если вы хотите загрузить excanvas асинхронно / условно, это возможно.

Во-первых, как указано в инструкциях, элемент (ы) холста не может существовать на странице до тех пор, пока не будет загружена и инициализирована программа AFTER excanvas, поэтому рассмотрите возможность их генерации или последующей асинхронной загрузки.

После загрузки библиотеки excanvas (через jQuery, requirejs и т. Д.), Вызовите это:

G_vmlCanvasManager.init_(document);

Это вызывает внутреннюю функцию init менеджера, которая обычно слушает готовый документ (который обычно уже запущен).

Другие вопросы по тегам