2010-03-13 4 views
2

나는 모든 웹 사이트에 나타나는 텍스트를 강조 표시하고 다른 웹 사이트에서 GET 쿼리 검색을 수행 할 수 있도록 Google 크롬 확장을 작성하려고합니다. 새 탭에서 쿼리가 열립니다.GET 쿼리 용 Google 크롬 확장 프로그램 작성

예를 들어 "google chrome"텍스트를 강조 표시하고 오른쪽 버튼을 클릭하여 크롬 확장을 활성화하면 새 탭에 http://example.com/index.php?q=google%20chrome이 열립니다.

이 작업을 수행하는 가장 좋은 방법은 무엇입니까?

답변

2

방문한 탭에서 선택한 텍스트를 가져 오려면 Extension Messaging을 사용해야합니다. 지금 당신은 당신이 당신의 background page 내에서, browser action를 클릭하면 이런 일이 할 가정

chrome.extension.onRequest.addListener(function(request, sender, sendResponse) { 
    if (request.method == "getSelection") 
     sendResponse({data: window.getSelection().toString()}); 
    else 
     sendResponse({}); // snub them. 
}); 

:

는 예를 들어, 다음과 같은 일을했을 콘텐츠 스크립트에서 간단한 구글 검색 확장을 수행 할 수 있습니다 onclick 이벤트를 수신해야합니다.

chrome.browserAction.onClicked.addListener(function(tab) { 
    chrome.tabs.sendRequest(tab.id, {method: "getSelection"}, function(response) { 
    var selectedText = response.data; 
    chrome.tabs.create({url: 'http://google.com?q=' + selectedText}); 
    }); 
}); 

이 아이콘 (브라우저 작업)을 클릭하면 당신은이 콘텐츠 스크립트에 요청을 보낼 것입니다 알 것와 콘텐츠 스크립트가 해당 작업을 수신하면, 그것의 페이로드로 다시 선택한 텍스트를 보내드립니다 . 그런 다음 Google을 통해 검색 결과를 검색 할 수있는 탭을 열 수 있습니다.

1

단순히 새 탭을 열려면 chrome.tabs.create()에 URL 매개 변수를 사용할 수 있습니다. 선택한 텍스트를 가져 오려면 mouseup 이벤트를 트랩하고 window.getSelection()을 사용하여 선택하십시오.

관련 문제