2011-08-28 5 views
3

QML에 간단한 마크 다운 지침을 포함한 간단한 일반 텍스트 편집기를 작성하고 싶습니다. 그래서 Syntax Highlighting을위한 TextEdit-Element와 JavaScript 함수를 추가했습니다. 예를 들어Qt QML 서식 지정 (강조 표시) 방법

:

내가 굵은에 두 개의 별표 '*'사이의 문자열을 인쇄 할.

따라서 앞에 <b> 태그를 삽입하거나 최신 기호 (*) 다음에 </b> 태그를 삽입해야하지만 요소의 속성은 HTML 문서입니다.

올바른 위치를 찾으려면 어떻게해야합니까? (커서 위치에 액세스 할 수 있지만 이것은 html-doc 위치와 다릅니다)? 그리고이 태그를 삽입 하시겠습니까? 도우미 방법, 속임수 또는 지침이 있습니까?

답변

1

window.getSelection()을 사용하면 선택한 텍스트를 가져올 수 있습니다.

HTML :

<div id="test" onmouseover="getSelectedText()">a*b*</div> 

자바 스크립트 :

function getSelectedText() { 
      var m = 'getSelection'; 
      if(m in window) { 
       var Selection = new String(window[m]()); 
       var text = multiReplace([/\*([^*]+)\*/], 
             [RegExp.$1.bold()], 
             Selection 
             ); 

       alert(text); 
      } 
    } 


function multiReplace(arr1,arr2,str) { 
    if(arr1 instanceof Array) { 
     for(var i = 0,len = arr1.length; i < len; i++) { 
      str = str.replace(arr1[i],arr2[i]); 
     } 
    } else if(arr1 instanceof Object) { 
     str = arr2; 
     for(var key in arr1) { 
      str = str.replace(key, arr1[key]); 
     } 
    } else { 
     return null; 
    } 
     return str; 
} 
예를 들어

관련 문제