0

내가 위키 피 디아 (wikipedia)와 같은 사이트를 만들고 있다고 가정 해 봅시다. 사용자는 인용이 필요하다고 생각되는 텍스트에 [인용 필요]를 넣을 수 있습니다. 내 기본적인 해결책은 모든 문장을 링크로 만드는 것이고, 클릭하면 그 문장 뒤에 필요하다.사용자가 텍스트로 범위를 선택하게하려면 어떻게해야합니까?

하지만 문장 수준에서 작동하기 때문에 그 해결책을 좋아하지 않습니다. 사용자가 여러 문장 또는 문장의 일부분을 원하면 [작동이 필요하지 않습니다]. 그래서 나는 일반 텍스트 편집기에서와 같이 사용자가 임의의 범위를 선택할 수있게하면 멋지다고 생각합니다.

사용자가 텍스트를 편집 할 수없는 추가 제약이 있습니다. 나는 그들이 텍스트를 편집 할 수 있다고 생각하게 할 수도 없으므로 가능한 경우 피하고 싶습니다. 이상해. 알아.

Google 문서 도구가 있기 때문에 가능하다고 생각하지만 확실하지 않습니다. 이것은 가능한가? 텍스트 영역 외부에서도 가능합니까? 내 옵션은 무엇입니까?

감사합니다.

+0

구글 문서 도구는 표준 DOM을 사용하지 않습니다 그들은 개정을 위해 OT와 관련이있는 자신의 하위 레벨 시스템입니다 ... document.getSelection()은 선택된 모든 텍스트의 범위를 리턴합니다. 당신은 그 꼬리표를 감싸거나 extentNode 뒤에 인용문을 덧붙일 수 있습니다. – dandavis

답변

1

(편집 할 수있는 경우) 같은 형식을 설정할 수 있습니다.

이 내 문단 [이 거의 100 문자가 포함] [표창장은 필요로했다].

대괄호가이 범위를 나타낼 것이므로 인용문이 필요합니다.

또는 수있는 사용자가 선택한 텍스트를 얻을처럼 따라 포맷 : Tim Down에서 촬영

See here for working jsFiddle

function getSelectionText() { 
    var html = ""; 
    if (typeof window.getSelection != "undefined") { 
     var sel = window.getSelection(); 
     if (sel.rangeCount) { 
      var container = document.createElement("div"); 
      for (var i = 0, len = sel.rangeCount; i < len; ++i) { 
       container.appendChild(sel.getRangeAt(i).cloneContents()); 
      } 
      html = container.innerHTML; 
     } 
    } else if (typeof document.selection != "undefined") { 
     if (document.selection.type == "Text") { 
      html = document.selection.createRange().htmlText; 
     } 
    } 
    alert(html); 
} 

코드 : Return HTML from a user-selected text

+0

그건 꽤 멋지 겠지만, 실제로 텍스트를 편집 할 수는 없습니다. 이제 나에게 일어난다. 나는 원래의 질문에서 그런 말을하지 않았다 ... 나는 지금 그것을 편집 할 것이다. – Verdagon

+0

이것은 꽤 굉장합니다! 아름답게 작동합니다. 나는 contenteditable = "true"를 가질 수는 없지만 그 부분을 제거하면 여전히 완벽하게 작동합니다. 감사! – Verdagon