2016-11-30 47 views
2

上下文:

TinyMce有一個允許使元素不可編輯的noneditable插件。如果一個元素具有類別,則TinyMce將使該元素不可編輯。將基本樣式應用於TinyMce中的不可編輯元素

問題:

我希望能夠與基本樣式標籤來包裝這個不可編輯的元素。

例如,如果我有:

Hello <span class="mceNonEditable">user_name</span> how are you today ? 

如果我點擊user_name選擇非編輯跨度點擊TinyMCE的BLOD按鈕

enter image description here

我想結果是:

Hello <b><span class="mceNonEditable">user_name</span></b> how are you today ? 

,但不是這個,什麼都不會發生。當我點擊TinyMce Blod按鈕時,代碼不會改變。

我創建了一個小的jsfiddle來證明這一點:https://jsfiddle.net/timotheejeannin/2hhpenm5/

我的嘗試:

我真的希望你能幫助!

回答

0

我相信你可以用一個簡單的自定義工具欄按鈕來完成這個工作,你可以添加到你的TinyMCE配置中。

當你點擊一個不可編輯的元素時,你會有效地得到一個DOM節點,它是整個不可編輯的元素。您可以絕對使用DOM操作爲該元素添加樣式,或者將該元素包裝到另一個標籤中。例如看到這個TinyMCE的小提琴:

http://fiddle.tinymce.com/sDfaab

當您單擊不可編輯的元素,然後單擊Add Style to Node按鈕,您會注意到,整個非編輯元素獲取加粗的文字一個新的內嵌樣式。

+0

是的,但這意味着我必須重新編碼TinyMce的所有樣式功能。這可能是一大筆工作...... –

+0

因此,當某些東西是「不可編輯的」時,它就是這個意思 - 它不能被編輯,所以TinyMCE不允許你編輯內容。如果你想要某些東西「大部分」是不可編輯的,你將不得不做一些編碼來實現這一點。不可編輯的東西依賴於封面下的'contenteditable'以及瀏覽器如何解釋該屬性,所以默認行爲與瀏覽器處理'contenteditable =「false」'的方式密切相關。 –

+0

是的,你是對的。這完全取決於是否通過「不可編輯」來表示「內容+風格」或「內容」。問題是,如果我將' ok'轉換爲' ok'我根本沒有碰過這個元素......只是看起來像一個有效的使用案例給我... –

相關問題