Подтвердить что ты не робот

CodeMirror с несколькими линиями не отображается до тех пор, пока что-то не запускает перерисовку

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

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

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

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

4b9b3361

Ответ 1

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

Ответ 2

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

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

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

С какой средой вы сталкиваетесь?

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

<link rel="stylesheet" href="#" onclick="location.href='http://codemirror.net/lib/codemirror.css'; return false;">
<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>