Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用tinyMCE和Node Js的协作文本编辑器项目?_Javascript_Node.js_Tinymce_Gettext_Settext - Fatal编程技术网

Javascript 使用tinyMCE和Node Js的协作文本编辑器项目?

Javascript 使用tinyMCE和Node Js的协作文本编辑器项目?,javascript,node.js,tinymce,gettext,settext,Javascript,Node.js,Tinymce,Gettext,Settext,我正在尝试构建一个协作文本编辑器,使用(1)tinyMCE作为编辑器,(2)节点js+Socket.io用于对等方之间的消息传递 第二部分(2)没有问题,消息来来往往,没有任何问题。但是我找不到正确的方法来获取键入的字符并将它们附加到另一个对等的编辑器窗口中 现在我使用:tinyMCE.activeEditor.getContent()获取文本,使用tinyMCE.activeEditor.setContent(target\u textarea)将其设置在另一侧。问题是,第二种方法将替换对等编

我正在尝试构建一个协作文本编辑器,使用(1)tinyMCE作为编辑器,(2)节点js+Socket.io用于对等方之间的消息传递

第二部分(2)没有问题,消息来来往往,没有任何问题。但是我找不到正确的方法来获取键入的字符并将它们附加到另一个对等的编辑器窗口中

现在我使用:tinyMCE.activeEditor.getContent()获取文本,使用tinyMCE.activeEditor.setContent(target\u textarea)将其设置在另一侧。问题是,第二种方法将替换对等编辑器中的所有内容,同时删除已编写的内容

我也尝试过使用第二个变量concat(),但这也行不通

也许有人对如何实现这种协作编辑器有一些建议

谢谢

代码:


我没有使用tinyMce,也没有看过API。 然而,我可以提供一个建议,我相信这可能会有所帮助,那就是你可能想要改变你的方法

您可能希望: -识别键入/插入的新文本 -将其发送给第二个用户(Socket.io) -在第二个用户的编辑器中,插入此新文本(使用相关API,即使用某些文本范围API在相同位置插入)

另一个好处(除了丢失其他用户所做的更改外)是您只发送增量更新(仅发送更改),而不是发送整个文本

...

var text = '';
    socket.on('textarea_changed', function(textarea_content){
        console.log(textarea_content);
        //text = text + ' ' + (textarea_content);
        //console.log(text);
        $(tinyMCE.activeEditor.setContent(textarea_content));
    });


  //if any key is pressed
  function tinyMceKeydown(){  
        //send message
        console.log(tinyMCE.activeEditor.getContent());
        socket.emit('keypressed', 'tom');
    };


...