显示引导选项卡上的CodeMirror克隆功能

时间:2012-07-09 16:27:03

标签: jquery twitter-bootstrap codemirror

我的项目有问题。 我的应用程序做了下一件事:

  1. 从脚本文件加载信息。
  2. 使用CodeMirror编辑
  3. 保存回服务器
  4. 我使用了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 = nulldelete iwssid_editor,但没有成功。请解释我的错误。 Here is a screenshot of my issue

1 个答案:

答案 0 :(得分:-1)

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