2015-10-15 75 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在相同位置插入)

其他好處之一(除了丟失其他用戶所做的更改)之外,您只發送增量更新只有變化),而不是發送整個文本。