以下の方法を使用してその場でコードミラーモードを変更しようとしていますが、残念ながら機能していません。あなたの助けを歓迎します
次のような選択メニューがあります。
<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";
どのように修正すればよいですか?私が今持っているフォルダーの構成では、レイジーモードの例でさえ機能していません