我在正在构建的 Web 应用程序中嵌入了一个 CodeMirror 实例。它工作得很好 - 除了在用户输入新字符之前不会显示初始内容。所以它就在那里,但隐藏起来,直到用户强制更改。这是不好的。有什么方法可以强制重新绘制或刷新模拟字符输入的浏览器 - 空格就可以了。
这是代码...
<textarea id='code-mirror' ><?php echo $contents; ?></textarea>
<script>
jQuery(document).ready(function(){
var textarea = document.getElementById('code-mirror');
var myCodeMirror = CodeMirror.fromTextArea(textarea,
{
onUpdate:codemirrorcallback,
});
// myCodeMirror.refresh(); ? is this an option?
});
</script>
这会生成一个工作编辑器,用于保存内容并在文本区域内显示保存的内容,但仅在用户开始编辑后才显示。在此之前它只是空白。
任何帮助,即使只是链接,我们也将不胜感激。谢谢大家!
更新
在 myCodeMirror 上调用 .refresh 在 Chrome 控制台中打印错误 Uncaught TypeError: Cannot call method 'focus' of undefined
最佳答案
如果发生这种情况,您确实需要在您的 CodeMirror 实例上调用 refresh()
。但是由于太空猴子,您需要将刷新调用包装在超时中:
var editor = CodeMirror.fromTextArea( yourSourceDOM, { lineNumbers:true })
setTimeout( editor.refresh, 0 )
它不是很漂亮,但这对我来说已经解决了。
关于php - CodeMirror 有内容但在按键之前不会显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10575833/