79

我正在使用 Codemirror 的 textarea 插件,但我无法检索 textarea 的值。

代码:

var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
    lineNumbers: true,
    matchBrackets: true,
    mode: "text/x-csrc"
  });


function showCode()
{
    var text = editor.mirror.getCode();
    alert(text);
}

它显示错误:

editor.getCode() is not a function.
4

6 回答 6

104

尝试使用getValue()而不是getCode().

将可选参数传入 getValue(separator) 以指定用于分隔行的字符串(默认为\n)。

于 2012-04-23T18:07:24.887 回答
43

这对我来说很好。

editor.getValue()
于 2013-11-28T13:54:11.943 回答
6

使用 your_editor_instance.getValue();

它将正常工作,因为getCode()在 CodeMirror 中没有以名称命名的函数。

用于设定值your_editor_instance.setValue();

于 2017-05-12T13:43:01.280 回答
2

我知道你正在使用textarea,但我希望这段代码对其他人有用!我有这个问题,但有article标签,这是我用 jquery 获取所有代码的解决方案:

res_array = []
$.each($('article.code-draft span[role="presentation"]'), function(){
    res_array.push($(this).text())
});
console.log(res_array.join('\n'))
于 2019-03-20T17:55:04.487 回答
2

版本:5

根据文档,您现在需要这样做:

doc.getValue(?separator: string) → string

所以在这个例子中:

editor.getDoc().getValue("\n")

于 2019-01-28T12:54:01.997 回答
1

这适用于您尝试捕获 CodeMirror 文本区域中返回的文本的 C++ Selenium 实例:

var myText = this.WebDriver.ExecuteJavaScript<string>("return $editor[0].getValue()");

[0]表单中代码镜像文本区域的索引在哪里。

于 2021-04-01T14:03:24.777 回答