Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Нужно понять getElementById+onclick (https://javascript.ru/forum/events/66696-nuzhno-ponyat-getelementbyid-onclick.html)

рони 10.01.2017 16:56

o5andrey,
строка 5 var уберите

o5andrey 11.01.2017 14:28

Нет, дело в расстановке скобок.
document.getElementById('subm').onclick = addElement;
var my_div = newCnv = null;
  function addElement() {
  	if (document.getElementsByTagName("canvas")[0] == null) {
    var newCnv = document.createElement("canvas");
    	  newCnv.setAttribute('id', 'field1')
    	  newCnv.setAttribute('height', 320)
    	  newCnv.setAttribute('width', 480)
          newCnv.innerHTML = "Скорее всего этот браузер не поддерживает HTML5"; 
	  var ctx = newCnv.getContext('2d');
        /* Рисует контур прямоугольника на всю ширину и высоту canvas */
        ctx.strokeRect(0, 0, newCnv.width, newCnv.height);
	     // добавляем только что созданный элемент в дерево DOM
	     my_div = document.getElementById("main");
 	     //вставляем newCnv внутрь main
 	     my_div.appendChild(newCnv);
 	  }
		  return false; //чтобы добавленные элементы не пропадали из-за перезагрузки страницы
   }

А почему в IE8 открывается проводник?

рони 11.01.2017 15:08

Цитата:

Сообщение от o5andrey
Нет, дело в расстановке скобок.

бред
Цитата:

Сообщение от o5andrey
А почему в IE8 открывается проводник?

значит что-то не работает из вашего кода в IE8

o5andrey 12.01.2017 13:30

А какой бред-то, всё работает!
Хотя да, если убрать var из функции тоже работает, и так лучше будет.
document.getElementById('subm').onclick = addElement;
var my_div = newCnv = null;
  function addElement() {
  	if (document.getElementsByTagName("canvas")[0] == null) {
          newCnv = document.createElement("canvas");
    	  newCnv.setAttribute('id', 'field1')
    	  newCnv.setAttribute('height', 320)
    	  newCnv.setAttribute('width', 480)
          newCnv.innerHTML = "Скорее всего этот браузер не поддерживает HTML5"; 
	  var ctx = newCnv.getContext('2d');
        /* Рисует контур прямоугольника на всю ширину и высоту canvas */
        ctx.strokeRect(0, 0, newCnv.width, newCnv.height);
	     // добавляем только что созданный элемент в дерево DOM
	     my_div = document.getElementById("main");
 	     //вставляем newCnv внутрь main
 	     my_div.appendChild(newCnv);
 	  }
		  return false; //чтобы добавленные элементы не пропадали из-за перезагрузки страницы
   }


Часовой пояс GMT +3, время: 05:23.