0

请检查我的问题的图片或图片链接!

当我像这样在 Ace Editor 中编写代码时,Brython 会给出正确的结果!

当我扩展我的代码或 div 调整大小并隐藏代码时,就像在这种情况下,打印的“pri”由于扩展代码而被隐藏,它会给出一个错误

我也尝试过包装文本,但 Brython 也给出了错误!

我的 Brython 和 Ace 配置如下!

function run() {
  const console = document.getElementById("console");
  const runner = new BrythonRunner({
    stdout: {
      write(content) {
        console.innerHTML += content;
        console.scrollTop = console.scrollHeight;
      },
      flush() {}
    },
    stderr: {
      write(content) {
        console.innerHTML += content;
        console.scrollTop = console.scrollHeight;
      },
      flush() {}
    },
    stdin: {
      async readline() {
        console.innerHTML += "\n";
        console.scrollTop = console.scrollHeight;
        var userInput = prompt();
        return userInput;
      },
      flush() {}
    }
  });
  var code = editor.getValue();
  runner.runCode(code)
}

function run_init() {

  if (document.getElementById("console") != '') {
    document.getElementById("console").innerHTML = '';
    run();
    console.log(document.getElementById('editor').innerText);


  } else {
    run()
  }
}
<button onclick="run()">run</button>
<div class='editor_class' id='editor'>print('Hello World')</div>
<div class='compiler_class'><textarea id='console' readonly></textarea></div>

<script src="https://ajaxorg.github.io/ace-builds/src-noconflict/ace.js" type="text/javascript" charset="utf-8"></script>
<script src="https://raw.githack.com/pythonpad/brython-runner/master/lib/brython-runner.bundle.js" type="text/javascript" charset="utf-8"></script>

<script>
  var editor = ace.edit("editor");
  editor.setTheme("ace/theme/vibrant_ink");
  editor.getSession().setMode("ace/mode/python");
  editor.setFontSize("16px");
  editor.container.style.height = "100px"
  editor.setOptions({
    enableLiveAutocompletion: true,
    copyWithEmptySelection: true,
    showGutter: true,

    useWrapMode: false, // wrap text to view
    indentedSoftWrap: false,
  });
</script>

4

1 回答 1

1

您的错误是在编辑器容器上使用 innerText 而不是 editor.getValue();,我已经更新了您的代码片段,它现在可以工作了。

于 2021-09-17T12:31:50.490 回答