이 질문은 유사한 질문 asked here에 태그를 적용하여 선택한 텍스트에 적용하는 방법에 대해 설명합니다. 질문에 대한 답변은되었지만 그 대답은 하나의 큰 결점이있었습니다. 즉, 선택한 동일한 텍스트가 문서의 다른 곳에있는 경우 <span>
은 해당 텍스트가 아니라 복제본을 둘러 쌉니다.jQuery - 랩 <span> 선택한 텍스트 주위 - 중복 인스턴스 버그
나는 이것이 아마도 stackoverflow 프로토콜에 반대 할 수 있다는 것을 알고 있지만, 진행 방법에 대한 실제 단서가없이 게시하고 있습니다. 내 가장 좋은 추측은 어떻게 든 선택한 텍스트 (무언가 along these lines) 전에 문자열 길이를 찾을 수 있지만 대체 기능 자체에 통합하는 방법 ... 잘 나는 밀어 사용할 수 있습니다. 누군가?
(내가 mathias-bynens로 이전 게시물에 대한 해결책을 (붙여 넣은) 아래.)
$("p").live("mouseup",function() {
selection = getSelectedText();
if(selection.length >= 3) {
var spn = '<span class="selected">' + selection + '</span>';
$(this).text($(this).html().replace(selection, spn));
}
});
//Grab selected text
function getSelectedText(){
if(window.getSelection){
return window.getSelection().toString();
}
else if(document.getSelection){
return document.getSelection();
}
else if(document.selection){
return document.selection.createRange().text;
}
}
에 의해 나는 이것을 좋아한다. 이것이 조금 더 흘러 나오기 전까지는, 이것을 처리하는 좋은 방법 인 것 같습니다. –