0

我的项目有问题。我的应用程序执行以下操作:

  1. 从脚本文件加载信息。
  2. 使用 CodeMirror 进行编辑
  3. 保存回服务器

我已经使用 Twitter BootStrap Tabs 和 Code Mirror 进行语法高亮。

我接下来要做的是:当 Tab Show 时,我需要将内容从文件加载到 textarea,然后从中创建 CodeMirror Editor。但是,当我尝试时,每次 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 = nulland delete iwssid_editor,但没有成功。请解释我的错误。 这是我的问题的屏幕截图

4

1 回答 1

-1

为什么不在页面加载时创建 Codemirror 编辑器?

于 2012-11-07T06:24:48.867 回答