鎖定元件我有真實用於用戶輸入,當一個按鈕被點擊它顯示的選項來代替某些字的CONTENTEDITABLE DIV。首先剝去所有html,並創建一個可以替換單詞的span元素。這些詞的標記是不同的,我面臨一些問題。在CONTENTEDITABLE =「真」的div
- 直接在跨度前後單擊並鍵入文本時,文本將與跨度具有相同的標記。在只有跨度的線上添加單詞非常困難。我想通過用
填充跨度來解決這個問題,但看起來有些奇怪。 - 用戶可以在點擊跨度,並改變它,我寧願有跨度的用戶點擊更改它之前選擇更換或忽略選項。換句話說,它需要被鎖定。我正在考慮通過capturig keyup來完成這個工作,如果它來自一個跨度然後是e.preventDefault(),但編程它有點痛苦。
所以我的問題是:
是否有鎖定在CONTENTEDITABLE span元素的一種簡單的方法,不涉及捕捉關鍵起來的preventDefault(沒試過還和甚至不知道這是否是會工作)?
當點擊或移動光標,旁邊這將是跨度的一部分的跨度並鍵入文字,有沒有辦法不讓它成爲跨度的一部分嗎?使用
填充範圍可能會有效,但當跨度是該行的第一個單詞時,它看起來很奇怪。爲了說明這一點,我已經張貼下面的示例HTML文件:
<!DOCTYPE html>
<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="content-type">
<title>Example</title>
</head>
<body>
<div contenteditable="true"></div>
<script type="text/javascript">
document.getElementsByTagName("div")[0]
.innerHTML="<span style='color:green'>hello</span>"
</script>
</body>
</html>
謝謝你的回答。這在IE9中不起作用,我可以點擊跨度並更改它。在FF中,我可以按下control + a然後刪除整個內容,這對我的實現來說並不是什麼大問題,但也許其他人不希望看到像這樣被刪除的鎖定內容。 – HMR 2013-09-14 04:44:01