5

以下の方法を使用してその場でコードミラーモードを変更しようとしていますが、残念ながら機能していません。あなたの助けを歓迎します

次のような選択メニューがあります。

<select name="idLanguage" id="select" onChange="selectMode()">
<option value="1">Python</option>
<option value="10">JavaScript</option>
<option value="33">Asterisk dialplan</option>
<option value="34">Clojure</option>
<option value="35">Common Lisp</option>
<option value="36">D</option>
<option value="37">ECL</option>
<option value="38">Go</option>
<option value="39">Haskell</option>
<option value="40">HTML</option>
<option value="41">Jinja2</option>
<option value="42">LiveScript</option>
<option value="43">mIRC</option>
</select>

そして、私はこのjavascriptメソッドを使用します:

var modeInput = document.getElementById("select");
function selectMode() {
  var myindex  = modeInput.selectedIndex;
  var modefly = modeInput.options[myindex].text.toLowerCase();
  alert(modefly); // This is giving me the exact mode on the screen
  editor.setOption("mode", modefly);// no change in the mode
  CodeMirror.autoLoadMode(editor, modefly);//no change in the mode
  //editor.refresh();
   }

alert()正解しているのにモードが変わらない

何か案が ?

ありがとうございました

アップデート :

ヘッダーにすべてのモードをロードしています (python、javascript など ..) codemirror アセットの構造を変更しました。codemirror モードを含むすべての javascripts を含むassetsフォルダーjsを含む単一のディレクトリが呼び出されているため、これはないと考えています。より長く有効

CodeMirror.modeURL = "../mode/%N/%N.js";

どのように修正すればよいですか?私が今持っているフォルダーの構成では、レイジーモードの例でさえ機能していません

4

1 に答える 1