我的项目有问题。 我的应用程序做了下一件事:
我使用了Twitter BootStrap选项卡和代码镜像进行语法突出显示。
我接下来做的事: 选项卡显示我需要将文件中的内容加载到textarea,然后从中创建CodeMirror编辑器。但是,当我尝试时,每当onShown事件触发时,我都会有CodeMiror对象克隆。
<!-- ==============================IWSSID-LUA-TAB======================================================-->
<div class="tab-pane fade" id="iwssid-lua-tab">
<div>
<button id="save-iwssid-code" class="btn btn-info" onclick="set_data('lua/iwssid.lua',$('#iwssid-lua-code').val())">Save</button>
<a href="lua/iwssid.lua" target="_blank" class="btn btn-success pull-right">Dowload File</a>
</div>
<br>
<form>
<div>
<textarea id="iwssid-lua-code" name="iwssid-lua-code"></textarea>
</div>
</form>
<script>
$(function () {
$('a[href="#iwssid-lua-tab"]').on('shown', function (e) {
post = get_data('lua/iwssid.lua');
$('#iwssid-lua-code').val(post);
var iwssid_editor = CodeMirror.fromTextArea(document.getElementById("iwssid-lua-code"), {
mode: "lua",
autofocus: true,
lineNumbers: true,
lineWrapping: true,
onCursorActivity: function() {
iwssid_editor.setLineClass(hlLine, null, null);
hlLine = iwssid_editor.setLineClass(iwssid_editor.getCursor().line, null, "activeline");
},
onBlur: function () {
iwssid_editor.save();
}
});
var hlLine = iwssid_editor.setLineClass(0, "activeline");
})
})
</script>
</div>
<!-- ==============================END OF IWSSID-LUA-TAB======================================================-->
set_data和get_data方法:
<script>
function get_data(file) {
var post;
$.ajax({
type: "POST",
async: false,
url: "filemanager.php",
data: { command: "get", filename: file }
}).done(function(msg ) {
post = msg;
});
return post;
}
function set_data(file, content) {
$.ajax({
type: "POST",
url: "filemanager.php",
data: { command: "set", filename: file, data: content }
}).done(function(msg ) {
alert("Done");
});
}
</script>
我尝试在创建新内容之前设置iwssid_editor = null
和delete iwssid_editor
,但没有成功。请解释我的错误。
Here is a screenshot of my issue
答案 0 :(得分:-1)
为什么不在页面加载时创建Codemirror编辑器?