range.setStart& range.setEnd不会被多次调用

时间:2017-08-16 18:39:04

标签: javascript jquery

请检查以下代码,我正在尝试实施类似自动填充功能的Facebook。

https://www.w3schools.com/code/tryit.asp?filename=FIM5SFP0Z1XK

这里我首先计算当前光标位置的值以及键入的字符。如果键入的字符是“@”,则它将字段“last_detected”值的值设置为最后检测到的“@”的位置,然后在下一个键入的字符中,它将计算最后输入的@字符的偏移量当前键入的字符,然后将这些偏移量之间的值传递给call_search_function(),它将返回完整匹配的值。

接下来,我调用replacer函数,它将部分类型字符串(最后输入的@字符的偏移量与当前键入的字符之间的值)替换为完全匹配的值。

现在的问题是,在我的代码中,这个逻辑只能工作一次。例如,如果您是第一次键入“@und”,它将在“contenteditable div”中将“@und”替换为“承包商”,但如果再次键入“@und”则不起作用。请协助。

在调试代码时,我怀疑下面的范围函数在第二次调用时失败。

range.setStart(sel.focusNode,startIndex);   range.setEnd(sel.focusNode,endIndex);

任何帮助或帮助都将受到高度赞赏。

0 个答案:

没有答案