2012-02-28 2 views
1

나는 ContentEditable 섹션을 가지고 있습니다. 사용자가 선택한 항목을 가져 와서 새 문자열로 바꾸고 싶습니다.ContentEditable JS를 사용하여 문자열 바꾸기

그래서 선택한 문자열의 시작과 끝을 원한다면 이전 문자열을 제거하고 새 문자열을 제자리에 두십시오 (오래 걸림).

예 :

I에 유래가 텍스트를 굵게 만들기 위해하는 것처럼, 그 선택된 단어 주위에 '별'을 추가 할
Typed String: 'Hello, World!' 
Selected String: 'World' 
String to replace with: '** World **' 

.

StackOverflow에 대한 수많은 질문을 읽었지만 아무도이 질문에 대답 할 수 없습니다. 그리고 나는 작동하지 않는 많은 발췌 문장을 시도했다. :피.

참고 : jQuery를 사용하고 있습니다.

감사합니다.

+0

저도 같은 문제가있어 필요 무엇을 제공해야합니다. "현재 선택을 바꾸기"위해 자주 반복되는 코드 조각은 크롬 콘텐츠 편집 가능하지 않습니다. 어떤 이유로 인해 window.getSelection은 contentEditable 영역 외부에서 선택 항목을 반환합니다 (마치 두 개의 선택 컨텍스트가있는 것처럼) –

답변

1

이 스레드는 원하는 텍스트와 매우 비슷한 범위의 텍스트를 배치하는 것을 기반으로합니다. 코드와 바이올린은

Wrapping a selected text node with span

+0

감사합니다, 코드가 작동하는 것 같습니다. 답변을 주셔서 감사합니다. :디 –

0
var str = 'Hello, World!'; var foo = 'World'; var bar = '** World **'; 

str = str.replace(foo, bar); 
+0

this 대체 단어가 텍스트의 첫 번째 단어 인 한 계속 작동합니다. 나중에 그 문자열을 대체하기 위해 문자열의 시작 위치를 사용하려고합니다. 단어를 다른 단어로만 바꾸는 replace() 함수가 아닙니다. –

관련 문제