我正在尝试将 CodeMirror 应用于我正在使用的这个迷你网页应用。它有两个有2 textareas。我想添加CM以获得更好的可见性,因此我可以编辑一些内容。到目前为止,我设法应用了Eclipse主题,但该工具不再适用。似乎 CodeMirror 没有将内容复制到textarea。
当我删除Codemirror js
工具再次运行时。
这是我的 JSFiddle
HTML
<textarea id="input" rows="10" cols="80"></textarea>
<textarea id="output" rows="10" cols="80" readonly></textarea>
JS
$('textarea').each(function(index, elem) {
CodeMirror.fromTextArea(elem, {
lineWrapping: true,
mode: "javascript",
theme: "eclipse",
lineNumbers: true,
});
});
答案 0 :(得分:1)
在我看来,问题出现在http://dean.edwards.name/packer/bindings.js
中,完全符合以下代码:
"#pack-script": {
disabled: false,
onclick: function() {
try {
output.value = "";
if (input.value) {
var value = packer.pack(input.value, base62.checked, shrink.checked);
output.value = value;
message.update();
}
} catch (error) {
message.error("error packing script", error);
} finally {
saveScript.disabled = !output.value;
decodeScript.disabled = !output.value || !base62.checked;
}
}
},
CodeMirror使用内部格式,并将自定义样式应用于textareas。因此,textarea的直接方法,例如input.value
不起作用。您需要调整它,以便它使用CodeMirror的方法来获取/设置值,如内容操作方法部分中this guide中所述。
修改1:
除了纠正一些语法错误之外,我还在this fiddle中工作。
完成的更改:
editor
函数返回CodeMirror对象,以便将其分配给变量。onclick
方法。在finally
块中,有saveScript
和decodeScript
的未定义引用,我评论过。并使用CodeMirror的getValue()
和setValue()
方法分别获取/设置值。如果观察到控制台中仍然存在一些错误,但这并不妨碍打包器的功能。