6

When ever I load a page with a very simple example I get

Uncaught TypeError: Cannot read property 'attachEvent' of null. Markdown.Editor.js:273

in my Chrome console log.

In Firebug I get

elem is null [Break On This Error]  
if (elem.attachEvent) {
Markdo...itor.js (line 273)

Why am I getting those errors and how do I solve it?

Evan Carroll
  • 78,363
  • 46
  • 261
  • 468
  • `null.attachEvent` <-- it's the same as this. Why doesn't *that* work, and why *is* `elem` evaluating to `null` here? –  May 25 '12 at 15:56
  • That `elem` evaluates to `null` and you should find out why. –  May 25 '12 at 15:57
  • 1
    @pst I did find out why, the element doesn't exist yet if you run the javascript-wmd-initializing code in the HEAD. This is a self-answer question because Google shows a lot of people encountering the problem, and the [only demo](http://code.google.com/p/pagedown/source/browse/#hg%2Fdemo%2Fbrowser) shows the code being executed at the end of the body -- not where people are likely to place it when they try to incorporate the library. – Evan Carroll May 25 '12 at 15:58

1 Answers1

7

Take a look at the code in the demo.

<script type="text/javascript">
  (function () {
    var converter1 = Markdown.getSanitizingConverter();
    var editor1 = new Markdown.Editor(converter1);
    editor1.run();
  } );
</script>

See where it is located? At the end of the body. This means the elements already exist. However, you're probably loading this JavaScript in the head. Instead, put the code in a .ready() block, or put it back at the end of the body (or after the textarea in the DOM).

Evan Carroll
  • 78,363
  • 46
  • 261
  • 468