我正在构建javascript(咖啡)单页应用程序(使用Backbone / Marionette和jQuery)。在此应用程序中,我获得了一个contenteditable div,允许用户在其中编辑文本。在此可编辑div中,我获得了防止删除,但我不想用户删除。我想做的是,如果他们试图删除(退格)或编辑受保护的单词,请跳到该单词的前面。
我可以检测到用户何时处于受保护范围内,在这种情况下,我可以防止Default(),但是如何跳到该单词之前的单词呢?换句话说,用户可能不会在其中设置光标。
这是我的代码,用于检查光标是否在范围内。
preventDeletion: (e) ->
selection = window.getSelection()
range = selection.getRangeAt(0)
element = range.startContainer.parentElement
if element.classList.contains('protected')
e.preventDefault()
我试图将此范围设置为contenteditable =“ false”,但最终导致非常奇怪的光标行为。