【问题标题】:Can codemirror be used on multiple textareas?codemirror 可以在多个文本区域上使用吗?
【发布时间】:2011-05-27 16:18:27
【问题描述】:

制罐codemirror可以在一个以上的textarea的使用?我使用的是动态生成的许多文本域。 P>

<script type="text/javascript"> 
var editor = CodeMirror.fromTextArea('code', {
height: "dynamic",
parserfile: "parsecss.js",
stylesheet: "codemirror/css/csscolors.css",
path: "codemirror/js/"
});
</script>

我宁愿设置上textarea的一个类将其连接到codemirror。可能吗?解决它是设置多个ID的另一种方式。上述设定代码的ID“代码”连接到codemirror。 P>

【问题讨论】:

    标签: javascript textarea editor codemirror


    【解决方案1】:

    您实际上可以多次调用CodeMirror.fromTextArea 以“Codemirror-ify”多个文本区域。

    如果您想要多个具有相同选项的文本区域,请将 Codemirror.fromTextArea 调用包装在一个函数中,例如:

    function editor(id)
    {
        CodeMirror.fromTextArea(id, {
            height: "350px",
            parserfile: "parsexml.js",
            stylesheet: "css/xmlcolors.css",
            path: "js/",
            continuousScanning: 500,
            lineNumbers: true
        });
    }
    

    然后您可以将它应用到您的文本区域,例如:

    editor('code1');
    editor('code2');
    

    【讨论】:

      【解决方案2】:

      可能对某人有帮助,使用 html 类将其附加到多个文本区域:

      <textarea class="code"></textarea>
      <textarea class="code"></textarea>
      <textarea class="code"></textarea>
      
      <script type="text/javascript">
      function qsa(sel) {
          return Array.apply(null, document.querySelectorAll(sel));
      }
      qsa(".code").forEach(function (editorEl) {
        CodeMirror.fromTextArea(editorEl, {
          lineNumbers: true,
          styleActiveLine: true,
          matchBrackets: true,
          theme: 'monokai',
        });
      });
      </script>
      

      如果投反对票,请写下原因..!

      【讨论】:

      • 非常感谢您的帮助。
      • 正是我需要的。非常感谢。
      【解决方案3】:

      试试这个代码

      function getByClass(sClass){
          var aResult=[];
          var aEle=document.getElementsByTagName('*');
          for(var i=0;i<aEle.length;i++){
              /*foreach className*/
              var arr=aEle[i].className.split(/\s+/);
              for(var j=0;j<arr.length;j++){
                  /*check class*/
                  if(arr[j]==sClass){
                      aResult.push(aEle[i]);
                  }
              }
          }
          return aResult;
      };
      
      
      function runRender(type){
          var aBox=getByClass("code_"+type);
          for(var i=0;i<aBox.length;i++){
              //alert(aBox[i].innerHTML);
              //var editor = CodeMirror.fromTextArea(document.getElementById("code_javascript"), {
              var editor = CodeMirror.fromTextArea(aBox[i], {
                  lineNumbers: true,
                  mode: "text/x-csrc",
                  keyMap: "vim",
                  matchBrackets: true,
                  showCursorWhenSelecting: true,
                  theme:"blackboard",
              });
          }
      };
      runRender('javascript');
      runRender('c');
      runRender('java');
      runRender('bash');
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-08-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多