2015-10-15 74 views
0

我正在尝试使用(1)tinyMCE作为编辑器和(2)Node js + Socket.io来构建协作文本编辑器,以便在对等点之间进行消息传递。使用tinyMCE和Node Js的协作文本编辑器项目?

第二部分(2)没有问题,消息来了又去,没有任何问题。但我无法找到正确的方法来获取输入的字符,并将它们附加到其他对等方的编辑器窗口中。

现在我使用:tinyMCE.activeEditor.getContent()来获取文本和tinyMCE.activeEditor.setContent(target_textarea)来设置它的另一面。问题在于第二种方法取代了同行编辑器中的所有内容,同时删除了已经写入的内容。

我曾尝试concat()以及使用第二个变量,但这也不会工作。

也许有人对如何实现这个协作编辑器有一个提示。

谢谢!

代码:

... 

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'); 
    }; 


... 

回答

0

我没有使用TinyMCE的,并没有一看API。 然而,我可以提供的一个建议,我相信可能会有所帮助,因为您可能想要改变方法。

而不是发送和更换整个文本,你可能想: - 确定输入/新文本插入 - 发送给第二个用户(Socket.io) - 在第二用户的编辑,插入这个新的文本(使用相关的API,即使用一些文本范围API在相同位置插入)

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