9

이 그냥 구글 크롬 연장을하지뿐만 아니라 자바 스크립트를자바 스크립트 텍스트 선택 이벤트

나는 내가 내 항목을 표시 표시되는 텍스트가 강조되는 크롬 확장하고 상황에 맞는 메뉴를 쓰고 있어요 클릭 컨텍스트 메뉴 내가 모든 값의 0과 널 (null)

그래서 내가 텍스트를 버퍼 몇 가지 메커니즘을 구현하려는

와 빈 개체를 얻을 컨텍스트 메뉴를 불러 내 ​​옵션을 선택한 후 선택한 텍스트

을 처리해야 우리 선택하자마자 어서 사건을 일으킬 수있는 텍스트를 선택한 후 마우스를 놓으면 어떤 일이 발생하면 전역 변수에서 선택한 텍스트의 복사본을 만들 수 있으며 나중에 처리 할 수 ​​있습니다

window.getSelected() 잘 작동합니다 별도의 테스트 코드와 테스트하지만 내 확장자를 사용하는 동안 나는 텍스트 및 HTML

제안이 될 것입니다 문서화에서 보는 바와 같이 나는 실제 선택한 텍스트

선택한 텍스트를 얻을 수없는 상황에 맞는 메뉴를 어디에 제발 ...


여기 나는 내가하고있는 것을 붙여 넣었다. 내가 단어 알림에 저장을 클릭하면 내가

enter image description here

여기가 단순히 mouseUp 이벤트에를 설정합니다


<script> 
chrome.extension.onRequest.addListener(function(request, sender, sendResponse) { 


    switch(request.message) 
    { 
     case 'getSelection': 
      sendResponse({data: window.getSelection().toString()}); 
     break; 

     case 'createMenu': 
      seecon(); 
      break; 

     default: 
      sendResponse({data: 'Invalid arguments'}); 
     break; 
    } 
}); 

function conOnClick(info,tab) 
{ 

/* 
    chrome.extension.sendRequest(tab.id, {method: 'getSelection'}, function(response){ 
     alert(response.data); 
    }); 
*/ 
} 


//function seecon() 
{ 
var contexts = ["selection"]; 
for (var i = 0; i < contexts.length; i++) { 
    var context = contexts[i]; 
    var title = "Save to Word Reminder"; 
    var id = chrome.contextMenus.create({"title": title, "contexts":[context], 
             "onclick": conOnClick}); 

} 

} 



</script> 

답변

5

코드의 나머지 부분 인 빈 문자열을 얻을 문서가 있는지 확인한 다음 선택 항목이 있는지 확인합니다 (그렇다면 선택 항목이 이전 선택 항목과 다른지 여부).

+0

너무 많은 이벤트가있을 수 있습니다 ... 거기에 어떤 종류의 이벤트가 있어야합니다 ... 거기에 있습니까? –

+0

나는 이것을 좋은 지적이라고 생각할 수는 있지만 그것을 실험하지는 못했다. 몇 가지 대안이있을 수 있다면 사용자를 염두에 두는 것이 좋습니다. 그래서 더 많은 대안들과 옵션들이 기대된다. –

+0

텍스트 선택 변경 이벤트가 없습니다. 따라서, 제안한대로해야합니다 (KeyUp에 추가 할 수도 있음). 그것은 비효율적 일지 모르지만 다른 방법은 없습니다 ... –

3

selectionchange 이벤트를 통해 텍스트 선택에서 변경 내용을들을 수 있습니다. 나는 그것이 WebKit 브라우저에서만 사용 가능하다고 믿는다.