如何执行用codemirror textarea编写的代码?

时间:2017-11-09 17:31:11

标签: codemirror

我在CodeMirror的textarea中编写了一个基本代码,现在在执行编写的代码时遇到了问题。

以下是HTML部分:

       <form id="preview-form" method="post" action="<?php echo 
        $_SERVER['PHP_SELF']; ?>">

        <textarea class="codemirror-textarea" name="preview-form-comment" 
        id="preview-form-comment">
            #include<stdio.h>
            int main()
            {
                printf("Hello World!!");

            }
        </textarea>

        <input type="test" name="testID" id="testID" value="aqsa shahid">

        <br>

        <input type="submit" name="preview-form-submit" id="preview-form-
        submit" value="Submit" onclick="test();">


        </form> 

        <div id="preview-comment"></div>

这是执行代码的功能。

        function test() {
        //code goes here
        alert(document.getElementById("preview-form-comment").value);        

        var code = $(".codemirror-textarea")[0];
        var editor = CodeMirror.fromTextArea(code, {
        lineNumbers: true,
        matchBrackets: true,
        mode: "text/x-csrc",
        theme: "dracula"

        });
        CodeMirror.runMode(document.getElementById("preview-form-
        comment").value, "text/x-csrc", document.getElementById('preview-
        comment')); };

2 个答案:

答案 0 :(得分:1)

我知道您可能已经解决了这个问题,而且它已经很老了,但是如果有人在寻找答案,我会把它放在这里

我在js中使用iframe解决了这个问题

iframe.src = "data:text/html;charset=utf-8," + encodeURI(new_textarea.value)

对我有用。

答案 1 :(得分:-1)

您可能应该使用第二个textarea。看看这段代码:

// on and off handler
CodemirrorInstance.on('change',function(e){
  // get value from instance
  new_textarea.value = e.getValue();
});

我无法测试我的代码,所以我不确定它是否会起作用。

问候。