如何获取Monaco Editor中的用户输入代码?求API文档缺失的getter方法示例
获取Monaco Editor中用户输入代码的方法
嘿,我刚好踩过这个坑,其实Monaco Editor获取用户输入代码的方法非常直接——就是调用编辑器实例的getValue()方法,可能你在API文档里没留意到它的归类,所以没找到~下面给你详细说明并附上完整示例:
完整示例:从初始化到获取代码
首先确保你已经正确引入Monaco Editor的资源,然后按以下步骤操作:
// 页面上准备一个容器div,id设为editor-container const editorContainer = document.getElementById('editor-container'); // 初始化Monaco Editor实例 const editor = monaco.editor.create(editorContainer, { value: '// 在这里输入你的代码', language: 'javascript', // 可根据需求切换语言,比如python、java theme: 'vs-dark' // 可选主题,也可以用默认的vs }); // 方式1:主动触发获取全部代码 function fetchEditorCode() { const userCode = editor.getValue(); console.log('当前编辑器中的代码:', userCode); // 这里可以把代码用于后续处理,比如提交到后端 return userCode; } // 方式2:实时监听代码变化,自动获取 editor.onDidChangeModelContent(() => { const currentCode = editor.getValue(); console.log('代码实时更新:', currentCode); }); // 举个例子:点击按钮获取代码 document.getElementById('get-code-btn').addEventListener('click', fetchEditorCode);
补充:相关的实用方法
除了获取全部代码,还有几个实用方法可以按需使用:
getSelection(): 获取用户当前选中的代码片段getModel().getValueInRange(range): 获取指定行/列范围内的代码,需要传入一个包含startLineNumber、startColumn、endLineNumber、endColumn的对象
为什么你在API文档里没找到?
getValue()属于IStandaloneCodeEditor接口的方法,而这个接口是Monaco Editor核心实例的类型。如果直接搜索"get code"可能容易错过,你可以直接定位到IStandaloneCodeEditor的方法列表,就能看到它,还有对应的setValue(newCode)方法用来设置编辑器内容。
这样应该就能解决你的问题啦,直接调用getValue()就能轻松拿到用户输入的全部代码~
内容的提问来源于stack exchange,提问作者Dion Coder




