2011-08-30 4 views
0

현재 선택한 노드를 글꼴 색으로 파란색으로 만들려고합니다. 지금은 강조 표시된 다음 텍스트를 파란색으로 만 만드는 다음 코드를 사용합니다.클릭시 execCommand 사용

어떻게하면 텍스트를 클릭하면 전체 노드가 execCommand를 사용하여 글꼴 색을 변경하도록 할 수 있습니까?

$('[contenteditable]').bind('click', function() { 
    currentSentence = window.getSelection().focusNode; 
    caretPosition = window.getSelection().focusOffset; 

    document.execCommand('ForeColor', false, '000'); 
}); 

답변

1

focusNode는 당신에게 가장 최근 이동 선택 경계 선택의 초점의 컨테이너 노드를 제공 할 것입니다. 원하는 내용이면 선택 영역을 저장하고 focusNode을 포함하도록 선택 영역을 설정 한 다음 document.execCommand()을 호출하십시오. 선택 사항을 복원해야한다면 더 어려운 문제입니다.

window.getSelection() 또는 Range을 지원하지 않고 완전히 다른 API를 사용하는 IE < 9에서는이 중 아무 것도 작동하지 않습니다.

jsFiddle : http://jsfiddle.net/timdown/J6fAa/

예 번호 :

$('[contenteditable]').bind('click', function() { 
    var sel = window.getSelection(); 
    var focusNode = sel.focusNode; 
    var range = document.createRange(); 
    range.selectNode(focusNode); 
    sel.removeAllRanges(); 
    sel.addRange(range); 
    document.execCommand('ForeColor', false, '000'); 
});