Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 01.03.2009, 21:39
vyv99
 
Сообщений: n/a

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");" ?

Последний раз редактировалось Андрей Параничев, 01.03.2009 в 23:07. Причина: Пользуйтесь bb-тегами [js] и [html] для оформления листингов кода в теле сообщения
Ответить с цитированием
  #2 (permalink)  
Старый 02.03.2009, 11:35
Флудер
Отправить личное сообщение для ZoNT Посмотреть профиль Найти все сообщения от ZoNT
 
Регистрация: 25.07.2008
Сообщений: 1,271

скрипт-то в хэде...
Ответить с цитированием
  #3 (permalink)  
Старый 02.03.2009, 11:56
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Разгадка в функции 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);
        });
      }
    },


З.Ы. Ах да, вы же даже не пытаетесь инициализировать канвас после создания, тогда мой ответ вам еще рано
Ответить с цитированием
  #4 (permalink)  
Старый 02.03.2009, 22:05
vyv99
 
Сообщений: n/a

Kolyaj. можно будет обратиться с этим же вопросом после того, как подрасту немного?

ZoNT. Спасибо?
Ответить с цитированием
  #5 (permalink)  
Старый 02.03.2009, 22:09
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от vyv99
можно будет обратиться с этим же вопросом после того, как подрасту немного?
А что вас может остановить?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
"Подарок" от IE при работе с getElementById Snipe Internet Explorer 1 10.11.2008 18:18
Открытие рисунка в новом окне Anatom Элементы интерфейса 3 18.03.2008 16:49