开发安科编辑器时,需要在contenteditable中临时生成一个“ROLLDICE”输入框,并把输入框准确放在用户输入光标的位置。
常见的做法直接使用getRangeAt(0).getBoundingClientRect(),但当光标位于行首时,返回值将为0。因此在这种情况下需要临时添加一个span并用于计算出正确位置。
但如果光标处于文字之间时,添加span会导致光标移位,因此必须只在光标处于行首时使用这种方法。
1 | //get the position of the cursor |
开发安科编辑器时,需要在contenteditable中临时生成一个“ROLLDICE”输入框,并把输入框准确放在用户输入光标的位置。
常见的做法直接使用getRangeAt(0).getBoundingClientRect(),但当光标位于行首时,返回值将为0。因此在这种情况下需要临时添加一个span并用于计算出正确位置。
但如果光标处于文字之间时,添加span会导致光标移位,因此必须只在光标处于行首时使用这种方法。
1 | //get the position of the cursor |