2012-01-04 3 views
2

JavaScript로 작은 HTML 편집기를 만들고 싶습니다. 선택한 텍스트의 font-size를 특정 CSS 값으로 설정할 수 있습니다. 설명서에 의하면, 폰트 크기는이 같은 폰트 크기 명령으로 설정된다contenteditable 요소에서 CSS 글꼴 크기를 설정하는 방법은 무엇입니까?

document.execCommand("FontSize", false, x); 

x는 결과가 상기 선택된 콘텐트가 <font size="x" /> 소자 래핑되는 1 내지 7의 폰트 크기이어야한다. 7보다 많은 폰트 크기로 드롭 다운 상자를 만들고 글꼴 크기 단위로 픽셀을 사용하고 싶기 때문에 매우 유용하지는 않습니다. 결국 선택한 텍스트를 <span style="font-size:25px" />과 같은 요소로 묶고 싶습니다. . 어떻게해야합니까?

이미 존재하는 HTML 편집기 구성 요소를 검색했지만 두 가지 유형의 라이브러리 만 찾았습니다 : CKEditor과 같은 큰 것들은 원하는대로 할 수는 있지만 큰 목적은이 목적을 위해 많고 작은 라이브러리는이 7 가지 글꼴 만 지원합니다 크기.

그래서 contenteditable HTML 요소에서 맞춤 글꼴 크기를 어떻게 설정할 수 있습니까? 최신 Firefox 및 Chromium 및 IE7-9에서 작동해야합니다.

+1

. 선택한 텍스트를 가져 와서 삭제하고, 새 스팬을 만들고, 텍스트를 넣고, 스팬에 원하는 스타일을 지정하고, 문서에 스팬을 삽입합니다. 그건 그렇고,'font-size = "25px"'는 올바른 속성이 아닙니다. 당신은'style = "font-size : 25px"'또는 js에서'theElement.style [ 'fontSize'] = '25px'; ' –

+0

@Mr Lister : 그냥 두뇌 오타였습니다. 고쳐 주셔서 감사합니다. 수동으로 수행하는 것은 사용자가 설명하는 것 이상을 포함합니다. 가능한 경우, 쓸모없는 래퍼 스팬의 끝없는 스태킹을 방지하기 위해 font-size를 모든 자식 요소에서 제거해야하며 새로 도입 된 span을 부모 요소와 병합해야합니다. 그리고 나서 전체 단락을 선택하면 span이'p'와 같은 블록 요소를 감싸기 때문에 충분하지 않습니다. 이렇게 완전히 수동으로하는 것은 매우 복잡하며 더 쉬운 해결책을 원합니다. 그러나 나는 아무 것도 없기를 두려워합니다 ... – kayahr

+1

더 간단한 편집자가이 옵션을 제공하지 않는다고 생각합니까? CKEditor와 같이 복잡한 것들은 왜 그렇게 생각합니까? 당신이 말했듯이, 복잡하고 많은 코드가 필요하기 때문에 쓸 수 있거나 기존 편집기를 필요에 따라 구성하고 필요하지 않은 부분을 제거 할 수 있습니다. – AlfonsoML

답변

3

당신은 이것을 위해 Rangy를 사용해 볼 수 있습니다. 모든 브라우저에서 범위/선택과 관련된 버그 및 불일치를 없애기 위해 크로스 브라우저 라이브러리입니다. range.insertNode (노드)

  • jQuery를 새로운 업데이트 - VAR
  • 에서 http://code.google.com/p/rangy/

    1. GET 범위 선택에서
    2. range.extractContents() 및 저장소 (ID)와 함께 새로운 범위 노드를 삽입 단계 2 var 예 노드 . $ ("#의 spanid") HTML (docFragment)

    여기에 모든 범위의 방법을 참조하십시오 : 당신은 아마 자신이해야합니까해야합니다 http://code.google.com/p/rangy/wiki/RangyRange#Methods

  • 관련 문제