How to refresh codemirror when it's parent div style becomes display block?

Pierre picture Pierre · Apr 30, 2012 · Viewed 13.3k times · Source

I'm using codemirror with textareas in a tabbed interface, when i'm not in the tab that contains codemirror and then go to it, I get empty white space without line numbers or the cursor, when I refresh the page it works, I know it's because the tabs content is hidden using display: none; so how can I fix this issue ?

here's my code, (I'm also using jquery):

var editor = CodeMirror.fromTextArea(document.getElementById($this.attr('id')), {
        lineNumbers: true,
        mode: text/html,
        enterMode: "keep",
        tabMode: "shift"
    });

    $(editor.getScrollerElement()).width(300);
    width = $(editor.getScrollerElement()).parent().width();
    $(editor.getScrollerElement()).width(width);
    editor.refresh();

thanks in advance.

Answer

Marijn picture Marijn · May 1, 2012

Make sure you also call refresh when switching to the tab that contains the editor.