2010-05-12 3 views
0

contenteditable div에서 사용자 선택을 찾으려면 몇 가지 코드를 작성하고 있습니다. this quirksmode article에서 코드를 가져옵니다. (findSelection();) 나는 기능 또는 경고 내 alert(userSelection)을 할 경우Javascript 함수는 함수 코드 또는 "{[native code]}"행을 반환하며 무엇을 잘못하고 있습니까?

function findSelection(){ 
    var userSelection; 
    if (window.getSelection) {userSelection = window.getSelection;} 
    else if (document.selection){userSelection = document.selection.createRange();} // For microsoft 
    if (userSelection.text){return userSelection.text} //for Microsoft 
    else {return userSelection} 
    } 

내가 크롬과 파이어 폭스에서 테스트를하고있어 함수 외부, 그것은 function getSelection() {[native code]}를 반환합니다. 만약 내가 console.log(findSelection();)하면 getSelection()을 제공합니다. 내가 잘못한 일이 있습니까?

답변

1

변경을하는 경우 (window.getSelection) {userSelection = window.getSelection();}

(getSelection())

+0

아칸소, 단지 오타, 덕분에, 나는 더 조심 다음 시간이 될 것입니다. – DavidR

2

getSelection은 선택 사항을 얻기 위해 실행해야하는 함수입니다.

if (window.getSelection) {userSelection = window.getSelection();} 
0

이 텍스트를 얻을 수 있습니다 선택의. 오타가 수정 된 경우에도 일관성없는 동작이 발생합니다. IE는 선택 텍스트를 문자열로 반환하고 다른 브라우저는 toString() 메서드가 호출 될 때만 선택 텍스트 문자열을 제공하는 Selection 개체를 반환합니다.

다음은 더 나은 것 :

function getSelectionText(){ 
    if (window.getSelection) { 
     return "" + window.getSelection(); 
    } else if (document.selection && document.selection.createRange) { 
     return document.selection.createRange().text; 
    } 
} 
관련 문제