簡體   English   中英

如何防止刪除 contenteditable 跨度?

[英]How to I prevent deletion of contenteditable span?

我正在嘗試使用contenteditable span 但是,如果作為用戶,我刪除了跨度內的所有文本,跨度就會消失並且不再可編輯(盡管仍在 DOM 中)。 我該如何防止這種情況?

我在 Chrome 和 FF 中都看到了這個問題。

這是我嘗試過的:

 <div class="subgroup" contenteditable="false" style="border: 1px solid red;"> <span class="header editable" contenteditable="true">initial contents</span> </div>

我根據2015 的這個答案contenteditable="false"放在父元素上,但無論該屬性是否存在於父元素上,結果都是相同的。

當然,我可以讓 JS 攔截按鍵以防止用戶完全清除內容,但這是一個糟糕的用戶體驗。 無論如何,我更喜歡純 HTML 解決方案。

在寫下這個問題時,我發現了一個解決方案。 對於可能需要它的其他人:在span上設置邊框。

但是,正如@G-Cyrillus 所建議的那樣,更好的解決方案是在節點為空時向span添加填充:

 <style>.subgroup span:empty { padding-right:1em;} </style> <div class="subgroup" contenteditable="false" style="border: 1px solid red;"> <span class="header editable" contenteditable="true">initial contents</span> </div>

有人有更好的解決方案嗎?

暫無
暫無

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

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