【问题标题】:Collaborative Text Editor project using tinyMCE and Node Js?使用 tinyMCE 和 Node Js 的协作文本编辑器项目?
【发布时间】:2015-10-15 22:33:19
【问题描述】:

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

第二部分(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');
    };


...

【问题讨论】:

    标签: javascript node.js tinymce gettext settext


    【解决方案1】:

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

    您可能想要:而不是传输和替换整个文本: - 识别输入/插入的新文本 - 将此发送给第二个用户(Socket.io) - 在第二个用户的编辑器中,插入这个新文本(使用相关的 API,即使用一些文本范围 api 在相同的位置插入)

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

    【讨论】:

      猜你喜欢
      • 2013-06-14
      • 2011-01-06
      • 2012-05-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多