2013-12-12 3 views
0

Мне нужна помощь с моей проблемой; похоже, Chrome не любит, чтобы запустить этот код, но на Firefox это работает:Невозможно вызвать метод 'appendChild' от нуля

function createContext(width, height) { 
    var canvas = document.createElement('canvas'); 
    canvas.id = "1"; 
    canvas.width = width; 
    canvas.height = height; 
    document.body.appendChild(canvas); 
    return canvas.getContext('2d'); 
} 
+1

это хорошо работает в моей хромированной консоли, попробуйте запустить свой код после DOM готов – yoyo

+0

возможно дублировать HTTP://stackoverflow.com/questions/8670530/javascript-error-cannot-call-method-appendchild-of-null http://stackoverflow.com/questions/19086159/uncaught-typeerror-cannot-call-method-appendchild-of- null http://stackoverflow.com/questions/14946428/how-to-fix-uncaught-typeerror-cannot-call-method-appendchild-of-null http: //stackoverflow.c om/questions/9677879/can not-call-method-appendchild-to-null-error-why –

ответ

1

Вы должны ждать document.body на самом деле существует перед вызовом функции.

Самый простой способ, чтобы вызвать этот код в конце вашего HTML-разметки, а не в <head>

0

Вы должны также вызвать функцию createContext(). Fiddle: http://jsfiddle.net/gXm8L/

+0

по определению, ошибка, которую он видит, не возникает до тех пор, пока функция не будет вызвана. – Alnitak

+0

Да, в скрипте, которую я только что предоставил, js был установлен в onDomready, поэтому элемент был найден и работал. Я сказал что-то не то? – n1kkou

+0

не так уж и плохо, так как просто указывая на кровотечение – Alnitak

0

Может быть, вы могли бы попробовать это -

window.onload=function(){ 
    createContext(100, 200); 
}; 

function createContext(width, height) { 
    var canvas = document.createElement('canvas'); 
    canvas.id = "1"; 
    canvas.width = width; 
    canvas.height = height; 
    document.body.appendChild(canvas); 
    return canvas.getContext('2d'); 
} 

Проверить эту скрипку - http://jsfiddle.net/j4c7U/82/

Смежные вопросы