Проблема «getContext is not a function» наблюдается, если canvas создаётся динамически, или просто сразу не имеет id, когда хотим получить от него getContext (2d).
Рабочее решение при использовании jQuery:
var context = $(".SomeClass").get(0).getContext("2d");
Здесь SomeClass — класс, присвоенный canvas без id, всё отработает без ошибок