You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决Brython运行从Ace Editor获取的代码时出现的报错问题

Ace Editor代码被遮挡或换行时Brython运行报错问题
  • 代码较短、完整展示在Ace Editor可视区域内时,Brython可正常输出运行结果
  • 当代码长度变长、容器div尺寸调整导致部分代码被隐藏(例如示例中print语句的「pri」部分因代码过长被遮挡)时,Brython会报错
  • 开启文本自动换行功能后,Brython仍会报错

测试用Brython与Ace Editor配置

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>

内容的提问来源于stack exchange,提问作者HackNetAyush

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 02:24:02