我对Codemirror(http://codemirror.net/manual.html)
有一点问题我的代码
$(document).ready(function ust()
{
pa_textareas();
});
function pa_textareas()
{
var textarea = document.getElementById('ta_1');
var editor_1 = new MirrorFrame(CodeMirror.replace(textarea), {
height: "100%",
width: "100%",
parserfile: ["tokenizejavascript.js", "parsejavascript.js"],
stylesheet: "js/js_parser/jscolors.css",
path: "js/js_parser/",
autoMatchParens: false,
content: 'test kjskljsklj skjs lkj slkj sl',
initCallback: function(getContents) { e1_ct = ''+editor_1.mirror.getCode()+''; },
onChange: function (n) { e1_ct = ''+editor_1.mirror.getCode()+''; }
});
var textarea = document.getElementById('ta_2');
var editor_2 = new MirrorFrame(CodeMirror.replace(textarea), {
height: "100%",
width: "100%",
parserfile: ["tokenizejavascript.js", "parsecss.js"],
stylesheet: "js/js_parser/csscolors.css",
path: "js/js_parser/",
autoMatchParens: false,
content: 'blub kasjdkljas dkjas lkdj alskj dlk',
initCallback: function(getContents) { e2_ct = ''+editor_2.mirror.getCode()+''; },
onChange: function (n) { e2_ct = ''+editor_2.mirror.getCode()+''; }
});
}
我想插入一个格式化代码的按钮,但我总是出错。
按钮: 的onclick = “editor_2.mirror.reindent();”
结果: - > “editor_2未定义”
THX 彼得:)
编辑:代码已修复
答案 0 :(得分:2)
因为您的代码中没有任何一点可以为editor_code_2分配值,但是您尝试使用它两次。
答案 1 :(得分:2)
editor_2
的范围是函数pa_textareas
。由于您使用内部事件处理程序属性调用它,因此无法访问该变量。
您应该在pa_textareas
函数中使用JavaScript分配事件处理程序。
因为你正在使用jQuery(至少我假设你是,有其他库有愚蠢的$
变量):
jQuery('some selector').click(function () { editor_2.mirror.reindent(); });
由于匿名函数是在pa_textareas
内声明的,因此它可以访问该范围内定义的变量。
答案 2 :(得分:0)
我无法在代码中的任何位置找到名为editor_code_2
的变量。这就是您收到错误的原因。您似乎拼错了editor_2
变量。