具有少量行的CodeMirror不会出现,直到某些东西触发重绘

时间:2011-10-14 19:13:53

标签: javascript codemirror

CodeMirror似乎工作得非常好,除非我在textarea中只有少量(3个或更少)代码行。当发生这种情况时,textarea是空白的,直到I(A)在textarea中输入或(B)做一些导致浏览器重新绘制的内容(如调整大小)。当有超过3行时,它们会在首次渲染页面时显示正常。

我在这里没有做任何事情:

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

只是想知道是否有其他人遇到过这个问题。

2 个答案:

答案 0 :(得分:1)

创建CodeMirror实例后使用refresh方法... editor.refresh() 当我在隐藏时尝试在dijit.Dialog中插入编辑器时,它发生在我身上。它为我做了诀窍。

答案 1 :(得分:0)

我设置了一个在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>