Używając document.getElementById () wewnątrz obiektu, działa w JSFiddle, TypeError w rzeczywistości. Czemu?

Mam kod, który działa w JSFiddle, ale nie działa, gdy zapisuję HTML + JS lokalnie i testuję go lokalnie. Nie mogę zrozumieć, co jest nie tak z kodem. Oto mój JSFiddle

http://jsfiddle.net/LLUAB/

A oto prawdziwy kod, niezbyt długi

<!doctype html>
<html>
<head>
<script type="text/javascript" language="Javascript">
function Composer(foobox) {
    this.foobox = document.getElementById(foobox);

    this.foobox.onkeydown = function(){window.alert("hello")};
}

var myComposer = new Composer("foo");
</script>
</head>
<body>

<textarea id="foo"></textarea>

</body>
</html>

questionAnswers(3)

yourAnswerToTheQuestion