2012-04-04 47 views
0

我遇到了嵌套contenteditable div的問題。在Mozilla和Webkit中它都能正常工作。您可以在嵌套div內或父級內單擊,光標將按預期顯示。問題在於Opera。我可以在父div中獲得遊標,但是當我在嵌套div內單擊時,沒有遊標。這是我的例子:嵌套Contenteditable不會集中在Opera

http://jsfiddle.net/Hawkee/gSd2p/1/

首先單擊鏈接添加div嵌套。你會發現,如果你點擊嵌套div上方的「代碼」,光標就會出現,但是任何時候你在div中點擊都會消失。

+0

我有點見過這種情況發生。如果您選擇嵌入的contentEditable,您可以編輯它。我不知道如何解決這個問題。 – Jordan 2012-04-04 03:08:47

+0

我可能需要做的是檢測瀏覽器,並做一個醜陋的黑客。它在單擊嵌套div時關閉父div中的contenteditable時起作用。然後我需要在模糊時重新打開它。 – Hawkee 2012-04-04 03:35:34

+0

豪克你解決了嗎?即使[html5demo](http://html5demos.com/contenteditable#view-source)也有這個問題(重點只有第一次)... – 2012-08-23 18:35:26

回答

1

退貨的解決方法將焦點轉移到DIV在Opera:

var range = document.createRange(); 
range.selectNodeContents(document.getElementById('yourdiv')); 
range.collapse(false); 
var selection = window.getSelection(); 
selection.removeAllRanges(); 
selection.addRange(range);