簡體   English   中英

TinyMCE自動保存插件和localStorage

[英]TinyMCE autosave plugin and localStorage

默認情況下,TinyMCE的自動保存插件將編輯器的文本存儲在localStorage中。 有沒有辦法告訴它使用其他存儲引擎? 最終,我想做的是在storeDraft事件上設置一個偵聽器,這樣我就可以將內容持久保存到我們的服務器,以便即使超過了autosave_retention限制,用戶也可以訪問內容。 我知道我可以將autosave_rentention設置為0,但是即使我這樣做,我仍然可以看到它仍然將數據寫入localStorage -只是將其刪除(盡管有時不是立即,而且似乎頁面重新加載時出現短路,在某些情況下例)。

所以基本上,我想用一塊石頭打兩只鳥。 我想停止TinyMCE將數據存儲在localStorage中,如果可以指定其他“數據存儲”,那么也許可以將其指向我的ajax處理程序,該處理程序將一直保留到后端。

任何建議將不勝感激!

日Thnx,
克里斯托夫

autosave插件旨在與本地存儲一起使用,並且沒有選擇更改為其他存儲機制的選項。 如果要將數據存儲在服務器上,通常可以使用一些自定義代碼,這些代碼使用(a)TinyMCE事件或(b)計時器來獲取編輯器的當前內容,然后將其發送到服務器。

如果要使用TinyMCE事件( https://www.tiny.cloud/docs/advanced/events/#editorevents )觸發此過程,則可以使用以下代碼:

tinymce.init({
    selector: "textarea",
    ...
    setup: function (editor) {
      editor.on('init change NodeChange Dirty', function (e) {
        // 1. use getContent() to extract the editor's current HTML 
        // 2. send the HTML to your server
      });
    }
});

如果要使用基本計時器(例如setTimeout() ),則可以使用它觸發與上面的示例代碼相同的兩個操作。

從理論上講,您可以修改autosave插件以將數據發送到服務器,而不是將數據存儲在本地存儲中,但是我認為您可以用一種更簡單的方式來完成所需的操作,而無需深入研究〜200行代碼。現有的插件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM