You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何获取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): 获取指定行/列范围内的代码,需要传入一个包含startLineNumberstartColumnendLineNumberendColumn的对象

为什么你在API文档里没找到?

getValue()属于IStandaloneCodeEditor接口的方法,而这个接口是Monaco Editor核心实例的类型。如果直接搜索"get code"可能容易错过,你可以直接定位到IStandaloneCodeEditor的方法列表,就能看到它,还有对应的setValue(newCode)方法用来设置编辑器内容。

这样应该就能解决你的问题啦,直接调用getValue()就能轻松拿到用户输入的全部代码~

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

火山引擎 最新活动