CodeMirror具有内容,但在按下之前不会显示

我有一个嵌入在我正在构建的webapp中的CodeMirror实例。 它工作得很好 – 除了在用户输入新角色之前不会显示初始内容。 所以它一直存在但是隐藏直到用户强制改变。 这是不好的。 有什么方法可以强制重新模仿或刷新模拟字符输入的浏览器 – 空白会做。

这是代码……

  jQuery(document).ready(function(){ var textarea = document.getElementById('code-mirror'); var myCodeMirror = CodeMirror.fromTextArea(textarea, { onUpdate:codemirrorcallback, }); // myCodeMirror.refresh(); ? is this an option? });  

这产生了一个工作编辑器,用于保存内容并在文本区域内显示已保存的内容,但仅在用户开始编辑后显示。 在此之前它只是空白。

任何帮助,甚至只是链接将受到高度赞赏。 多谢你们!

UPDATE

在myCodeMirror上调用.refresh会在Uncaught TypeError: Cannot call method 'focus' of undefined的Chrome控制台中打印错误Uncaught TypeError: Cannot call method 'focus' of undefined

如果发生这种情况,您确实需要在CodeMirror实例上调用refresh() 。 但是由于空间猴子,你需要在超时中包装刷新调用:

 var editor = CodeMirror.fromTextArea( yourSourceDOM, { lineNumbers:true }) setTimeout( editor.refresh, 0 ) 

它不漂亮,但这解决了我。

使用代码镜像5.14.2,如果你明确刷新,你必须注意正确调用它(参见这个问题 ),但最容易使用提供的autorefresh add的codemirror来处理它。

如果您使用的是CodeMirror版本2+,则可以调用CodeMirror.refresh() 。 请参阅有关refresh()的文档 。

注意:必须在CodeMirror 实例上调用它,而不是元素。 请参阅https://stackoverflow.com/a/5377029/526741