CodeMirror с несколькими строками не появляется, пока что-то не вызывает перерисовку - PullRequest
10 голосов
/ 14 октября 2011

CodeMirror, кажется, работает очень хорошо, за исключением случаев, когда у меня всего несколько (3 или менее) строк кода в текстовой области. Когда это происходит, текстовая область остается пустой, пока я (A) не нажму enter в текстовой области или (B) сделаю что-то, что заставляет браузер перерисоваться (например, изменение размера). Если строк больше 3, они отлично отображаются при первом отображении страницы.

Я не делаю здесь ничего необычного:

var editor = CodeMirror.fromTextArea(document.getElementById('html'), {
    mode: 'text/html',
    tabMode: 'indent',
    lineNumbers: true
});

Просто интересно, если у кого-то еще была эта проблема.

Ответы [ 2 ]

1 голос
/ 06 ноября 2013

Используйте метод refresh после создания экземпляра CodeMirror ... editor.refresh () Это случилось со мной, когда я пытался вставить редактор в dijit. Диалог, когда я был еще скрыт. Это помогло мне.

0 голосов
/ 22 июля 2013

Я установил сценарий, который не имел проблем в Chrome, используя от 0 до 2 строк кода несколькими способами.

Я напрямую связался с codemirror для включений.

У вас последняя версия?

С какой средой у вас проблемы?

Возможно, это проблема браузера?

<link rel="stylesheet" href="http://codemirror.net/lib/codemirror.css">
<script src="http://codemirror.net/lib/codemirror.js"></script>
<script src="http://codemirror.net/addon/fold/foldcode.js"></script>
<script src="http://codemirror.net/addon/fold/foldgutter.js"></script>
<script src="http://codemirror.net/addon/fold/brace-fold.js"></script>
<script src="http://codemirror.net/addon/fold/xml-fold.js"></script>
<script src="http://codemirror.net/mode/javascript/javascript.js"></script>
<script src="http://codemirror.net/mode/xml/xml.js"></script>

<textarea id='someID1'></textarea>

<textarea id='someID2'>
    <table><tr><td>The wheels on the bus go round and round.</td></tr>
    </table>
</textarea>

<script>
    var editor = CodeMirror.fromTextArea(document.getElementById('someID1'), {
        mode: 'text/html',
        tabMode: 'indent',
        lineNumbers: true
    });

    CodeMirror.fromTextArea(document.getElementById('someID2'), {
        mode: 'text/html',
        tabMode: 'indent',
        lineNumbers: true
    });
</script>
...