在我以前的帖子中: Finding Touched elments CKEDITOR, 我一直在寻找触动的元素。那个帖子的回答运作良好。
但现在我有另一个问题。将插入符号设置为标记/块的前端或末尾时。 我只能看到父母是跨越的。但可能是用户试图将插入符号放在标记之外。例如:
this ^<span>^test</span> text
可以将插入符号设置为“^”而不会看到任何差异。
(单选(startContainer == endContainer))
上一篇文章中的anwser确实检测到它是否在标签之外。但只是在标签内部,它将无法检测哪个给出了新的场景..我需要一种方法来避免新场景并让它像触摸块一样处理。
我想检测插入符号是否在跨度中并触摸开始。 最后只有它才会触及结束。 函数range.checkStartOfBlock返回false,这不是解决方案。
答案 0 :(得分:0)
我找到了Mozilla的修复程序,现在我也想修复IE7及以上版本。
Mozilla修复: 检查开始:
range.startOffset === 0 //Means StartOfBlock
检查结束:
range.endOffset === range.startContainer.getText().length //Means EndOfBlock
====编辑====
来自rangy.googlecode.com的rangy范围库提供了一个可接受的解决方案。 (提供了某种兼容的startOffset和其他一些功能。) 我需要对Internet Explorer进行大约3次检查,对Mozilla只进行1次检查。 但它看起来很简单。
仍然欢迎所有想法。