contenteditable 요소의 노드에 캐럿을 설정하는 방법
6361 단어 tutorialtypescriptjavascript
비밀
요소에서
foucs()
에 의해서만 contenteditable 요소에 캐럿을 설정할 수 없습니다.코드 샘플
자바스크립트
const setCaret = (
contenteditableElement,
node,
position
) => {
const selection = window.getSelection();
if (!selection) return;
// Create a new range
const range = document.createRange();
range.setStart(node, position);
range.collapse(true);
// Remove the current range
selection.removeAllRanges();
// Add the new range
selection.addRange(range);
// Focus on the contenteditable element instead of the node if needed.
contenteditableElement.focus();
};
타입스크립트
const setCaret = (
contenteditableElement: HTMLElement,
node: Node,
position: number
): void => {
const selection = window.getSelection();
if (!selection) return;
// Create a new range
const range = document.createRange();
range.setStart(node, position);
range.collapse(true);
// Remove the current range
selection.removeAllRanges();
// Add the new range
selection.addRange(range);
// Focus on the contenteditable element instead of the node if needed.
contenteditableElement.focus();
};
세부 사항
range.collapse(true);
Range.collapsed을 true로 설정합니다. 이는 범위의 시작점과 끝점이 같은 위치에 있음을 의미합니다.
참조
Reference
이 문제에 관하여(contenteditable 요소의 노드에 캐럿을 설정하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/takechamp/how-to-set-caret-on-a-node-in-a-contenteditable-element-4k46텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)