Javascript 在编辑器中进行更改后,获取文本并通过socket.io发送

Javascript 在编辑器中进行更改后,获取文本并通过socket.io发送,javascript,socket.io,ace-editor,Javascript,Socket.io,Ace Editor,如标题中所述,我需要在编辑器中的更改事件之后获取代码,并通过套接字发送该代码。我可以通过套接字将代码发送到编辑器,但我无法获取代码 if(socket !== undefined){ //put latest string in DB to ACE socket.on('output', function(data){ if(data.length){ var x = data.length-1; editor.setValue(data[x].code); }

如标题中所述,我需要在编辑器中的更改事件之后获取代码,并通过套接字发送该代码。我可以通过套接字将代码发送到编辑器,但我无法获取代码

if(socket !== undefined){
//put latest string in DB to ACE
 socket.on('output', function(data){
   if(data.length){
     var x = data.length-1;
     editor.setValue(data[x].code);
   }
 });

// after keydown put new string to DB
 editor.on('change', function(data){
   var code = editor.getValue();
     socket.emit('input',{
       code: code
     });
 });
}
<script src="src-noconflict/ace.js" type="text/javascript" charset="utf-8"></script>
var editor = ace.edit("aceEditor");
var code = editor.getValue();

//editor.setValue("new code here");
editor.getSession().setValue(editor.getValue(), 1);
editor.setTheme("ace/theme/twilight");
editor.session.setMode("ace/mode/javascript");
if(套接字!==未定义){
//将DB中的最新字符串放入ACE
socket.on('output',函数(数据){
if(数据长度){
var x=数据长度-1;
editor.setValue(数据[x].代码);
}
});
//在keydown之后,将新字符串放入DB
编辑器.on('change',函数(数据){
var code=editor.getValue();
socket.emit('input'{
代码:代码
});
});
}
var editor=ace.edit(“aceditor”);
var code=editor.getValue();
//setValue(“此处的新代码”);
editor.getSession().setValue(editor.getValue(),1);
编辑:setTheme(“ace/theme/twilight”);
setMode(“ace/mode/javascript”);
HTML:

一些文本

我在浏览器控制台中看到一个错误,说“未捕获引用错误:未定义编辑器”。有人知道这是错误的吗?

这似乎是一个范围问题,仅从您发布的内容很难准确地告诉您发生了什么(除了编辑器在此范围内不可用)。您需要等待编辑器加载,然后才能订阅事件。由于第一个代码块等待套接字消息,这可能会给
window.editor
启动时间…我不知道如何加载编辑器?这是在设置编辑吗
<div id="aceEditor" style="height: 500px; width: 500px">some text</div>