3

我正在使用 html 编辑器来编辑内容。现在我需要确保一种非常特殊的元素不会被删除(具有特殊类的图像)。

对于使用 BACKSPACE、DELETE、CTRL + X/CMD + X 的非折叠选择/范围的用例,我找到了解决方案,但我仍在寻找选择/范围未折叠且下一个 Backspace 将删除我的一个特殊图像。

我如何检测下一个 Backspace/Delete 是否会删除其中一个 img-tags ?

示例: CARET 标记插入符号/光标位置。如果下一步将按下退格键,则图像将被删除。我怎样才能发现这种情况?

<p>Some Text <b>here <img class="my class" src="..."/></b>CARET some text</p>
4

2 回答 2

1

对于检查插入符号是否在图像旁边的情况,这是我对类似问题的回答。它依赖于 Rangy 来支持 IE < 9,但可以很容易地使其不依赖于 Rangy。

答案只考虑退格,但也可以很容易地适应工作Delete

https://stackoverflow.com/a/10020476/96100

于 2012-04-24T14:32:08.637 回答
1

onkeyup下面的代码用(and )检测插入符号周围的元素onselectionchange,但它仅适用于 IE。也许它可以“翻译”成jQuery。

function detectClass(){
    var range, parentR, parentL;
    range = document.selection.createRange();
    range.moveStart('character',1);
    range.moveEnd('character',1);
    parentR = range.parentElement();
    range.moveStart('character',-2);
    range.moveEnd('character',-2);
    parentL = range.parentElement();
    if (parentR.className == 'special'){/* special on right */}
    if (parentL.className == 'special'){/* special on left */}
    return;
}
于 2012-04-26T09:31:27.670 回答