2014-11-20 66 views
0

我有一些HTML如下(爲IE9):錯誤的光標顯示IE9 CONTENTEDITABLE

<div contenteditable="true"> 
    Some editable text 
    <span class="code" contenteditable="true" unselectable="on">uneditable text</span> 
    more editable text 
</div> 

在IE9跨度CONTENTEDITABLE必須設置爲「真」,使跨度不可編輯,並在Chrome它被設置以「假」使跨度不可調整!

但是,在IE9中,當鼠標移過跨度時,光標顯示爲移動光標(交叉箭頭)。光標在我的CSS文件中設置爲'指針',但這不適用於IE9。

如何將光標更改爲IE9中的手形或箭頭?

+0

屬性名稱'contententeditable'這裏只是在這裏發佈的代碼中的錯字,對吧?你真實的代碼有正確的名字'contenteditable',對吧?如果是,請編輯該問題。 – 2014-11-20 22:53:35

回答

0

我下面的作品上都IE9和Chrome 38細,跨度的內容是編輯和段外的文字是編輯。光標也與您將鼠標懸停在任何文本上時所期望的相同。

我注意到的唯一diffrence是Chrome上跨度以藍色突出顯示在編輯模式時。

<div> 
Some NOT editable text 
<span class="code" contenteditable="true">EDITABLE text</span> 
more NOT editable text 
</div> 
視覺Stidio IDE

HTML5驗證例如將電話你contententeditable不是元素DIV不可選擇的一個有效的屬性也不是件跨度的有效屬性。

如果您仍然遇到遊標問題,請發佈您的CSS。

0

使可編輯元素的子元素不可編輯是一個混亂的業務,在瀏覽器版本之間存在錯誤和不兼容;見例如contenteditable=false inside contenteditable=true block is still editable in IE8HTML contenteditable with non-editable islands

但是您明顯發現了使用非標準屬性unselectable=on的解決方法(對於IE)。通過使元素不可選,它也使其不可編輯,因爲沒有辦法編輯它。這個屬性對於IE來說很重要,你應該使用邏輯contenteditable=false來覆蓋其他瀏覽器。這會使光標成爲一個text光標,這比您現在擁有的更少。這可能是誤導,但IE顯然IE想用text光標編輯元素他們的孩子(儘管不合邏輯的組合contenteditable=true unselectable=on似乎導致光標move)。畢竟,它是可編輯的,包括不可編輯的島嶼,因爲整個島嶼可以被移除或替換。無論如何,在這樣的問題IE忽略cursor在CSS中的屬性設置。

+0

我發現在IE9中,您需要同時取消選擇=「開」和contenteditable =「true」,以確保跨度無法編輯。 unselectable =「on」停止鼠標選擇跨度並將光標置於其中。但是如果你在外部div編輯東西,你可以使用箭頭鍵並導航到跨度,然後編輯它,如果contenteditable在IE中設置爲false。我希望當contenteditable =「true」和unselectable =「on」時有一種方法來改變光標。 – KennyE 2014-11-21 11:49:58