通過表情符號在工作我使用twemoji庫顯示在輸入字段的表情符號(contanteditable格):可編輯的div
<div contenteditable="true" id="input_div"></div>
用戶可以使用外部按鈕添加表情符號,所以我可以把它添加到很簡單的div(讓不關心插入符的位置):
div.innerHTML += twemoji.parse(emoji);
接下來,我需要從表情符號股利獲取用戶輸入,有沒有轉換回unicode字符一些簡單的方法是什麼?
我目前的解決方案here(我只是解析<img>
讓alt屬性),但我認爲它看起來有點複雜,我無法用div.innerText
屬性(相當方便擺脫DIV純文本),因爲我失去了表情符號, 。另外我使用div.getInnerText
防止插入HTML或圖片來自剪貼板:
div.addEventListener("insert",() => {setTimeout(div.innerText = div.innerText,0)})
您將會得到類似於可編輯元素innerHTML''的內容 - 因此您可以再次將它從img src中解析出來(查看「1F600」是您創建表情符號的代碼點,所以這似乎直接反映在圖像文件的名稱。) – CBroe
@CBroe請參考我的鏈接,這正是我現在做的(我解析alt屬性,但它並不重要),對我來說,它看起來不方便,因爲我我使用div.innerText屬性來獲取乾淨的文本從div沒有任何html – Leo
_「我解析alt屬性,但它並不重要」_ - 它確實很重要,如果alt屬性不包含你想要的。 'alt =「」' - 看到那個替換角色嗎? (這是從簡單地將innerHTML記錄到控制檯中複製而來的)。這很可能意味着您正在使用的庫已寫入屬性中,而不是有效的unicode代碼點。 (當我點擊「獲取文本」按鈕時,我在你的textarea下面看到完全相同的字符 - 所以你的代碼工作,它只適用於已經損壞的輸入數據。) – CBroe