7
我目前正在爲Web構建一個Markdown編輯器。 Markdown標籤可通過Range界面實時預覽。下面的代碼使用,這應該是工作根據MDN:在DOM元素後移動選區
var range = document.createRange()
var selection = window.getSelection()
range.setStart(textNode, start)
range.setEnd(textNode, end + 2)
surroundingElement = document.createElement('strong')
range.surroundContents(surroundingElement)
var cursorRange = document.createRange()
cursorRange.setStartAfter(surroundingElement)
selection.removeAllRanges()
selection.addRange(cursorRange)
Firefox的工作:有些大膽文本
http://f.cl.ly/items/093R343i23402K190k1t/firefox.gif
鉻不是:有些大膽的文字
有什麼建議可能是錯的?關於這個問題的信息很少。
回答
感謝@Tim下來,我固定它使用不可見字符的解決方法,他介紹中提到的環節之一就是答案。這是我現在使用的代碼:
var range = document.createRange()
range.setStart(textNode, start)
range.setEnd(textNode, end + 2)
surroundingElement = document.createElement('strong')
range.surroundContents(surroundingElement)
var selection = window.getSelection()
var cursorRange = document.createRange()
var emptyElement = document.createTextNode('\u200B')
element[0].appendChild(emptyElement)
cursorRange.setStartAfter(emptyElement)
selection.removeAllRanges()
selection.addRange(cursorRange)
貴[瘦長](https://code.google.com/p/rangy/)解決這個問題? –
@ ream88:可悲的是沒有。沒有真正的修復,只有討厭的解決方法。 –
修復它,使用隱形char解決方法。非常感謝,希望這些不一致將在某一天得到修正。 –