excanvas при работе в новом окне
Пример из интернета работает со всеми браузерами:
<html> <head> <!--[if IE]><script type="text/javascript" src="excanvas.js"></script><![endif]--> <script type="text/javascript"> function draw(id) { var canvas = document.getElementById(id); var ctx = canvas.getContext("2d"); ctx.fillStyle = "rgb(200,0,0)"; ctx.fillRect (10, 10, 55, 50); ctx.fillStyle = "rgba(0, 0, 200, 0.5)"; ctx.fillRect (30, 30, 55, 50); } </script> </head> <body> <canvas id="canvasId" width="150" height="150"></canvas> <br/><br/> <input style="width:auto;" type="button" value="Нарисовать" onclick="draw('canvasId');"> </body> </html> Файл "excanvas.js" лежит в папке рядом с html-файлом. Не могу добиться того же результата при создании канвы скриптом: <html> <head> <!--[if IE]><script type="text/javascript" src="excanvas.js"></script><![endif]--> <script type="text/javascript"> function draw() { document.write("<canvas id='canvasId' width='150' height='150'><\/canvas>"); var canvas = document.getElementById('canvasId'); var ctx = canvas.getContext("2d"); ctx.fillStyle = "rgb(200,0,0)"; ctx.fillRect (10, 10, 55, 50); ctx.fillStyle = "rgba(0, 0, 200, 0.5)"; ctx.fillRect (30, 30, 55, 50); } </script> </head> <body> <input style="width:auto;" type="button" value="Нарисовать" onclick="draw();"> </body> </html> Собственно, в последнем примере еще какой-то баг (работает только в ГуглХроме, а ФФ и Опера требуют перед и после канвы какого-либо текста.) Но почему ИЕ не проходит строку "var ctx = canvas.getContext("2d");" ? |
скрипт-то в хэде...
|
Разгадка в функции init, которая вызывается при загрузке скрипта
init: function (opt_doc) { var doc = opt_doc || document; if (/MSIE/.test(navigator.userAgent) && !window.opera) { var self = this; doc.attachEvent("onreadystatechange", function () { self.init_(doc); }); } }, З.Ы. Ах да, вы же даже не пытаетесь инициализировать канвас после создания, тогда мой ответ вам еще рано :) |
Kolyaj. можно будет обратиться с этим же вопросом после того, как подрасту немного?
ZoNT. Спасибо? |
Цитата:
|
Часовой пояс GMT +3, время: 08:31. |