2011-03-29 6 views
3

이 코드 고려해chrome.tabs.executeScript에서 매개 변수가 contentscript에있는 함수를 어떻게 호출 할 수 있습니까?

function SwapColumns() { 
    chrome.tabs.executeScript(null, 
     {code:"SwapNameAndSurname();"}); 
} 

위의 코드는 popup.html에를, 메소드 SwapNameAndSurname은() 함수의 전체 라이브러리만을 포함하지 않는 콘텐츠 스크립트라는 이름의 js.js입니다. popup.html에서 SwapColumns 함수를 호출하면 js.js의 SwapNameAndSurname() 함수가 콘텐츠 스크립트를 통해 원본 페이지의 DOM에서 변경됩니다.

그러나 내 문제는 여기에 있습니다. 내가 매개 변수로 SwapNameAndSurname() 함수에 보낼 필요가 popup.html에서 직원이라는 이름의 객체를 준비했습니다 :

var employee = {'Name' : 'John', 'Surname' : 'Doe', 'Qualifications' : [{'Title':'MCAD', 'Date':'Jan 2008'},{'Title':'MCSA', 'Date':'Feb 2008'}]}; 

function SwapColumns() { 
    chrome.tabs.executeScript(null, 
     {code:"SwapNameAndSurname(**???employee???**);"}); 
} 

내가 어떻게 할 수 있습니까? chrome.tabs.executeScript에서는 문자열에 직접 코드를 작성해야하므로 실제로 매개 변수를 보낼 수 없습니다. 나는 Chrome's tabs.executeScript - passing parameters and using libraries?을 읽었지만 여전히 무슨 일이 일어나고 있는지 파악할 수 없습니다.

답변

1

나는 내 자신의 질문에 대한 답을 찾았습니다. 확장 페이지에서 chrome.tabs.sendRequest 메소드를 호출하고 컨텐츠 스크립트에서 chrome.extension.onRequest.addListener 메소드를 사용하여 리스너를 추가해야합니다. 보내기 요청 메소드는 컨텐츠 스크립트에있는 이벤트를 트리거하여 컨텐츠 스크립트로 데이터 형식을 보낼 수있게합니다.

http://aarongusman.wordpress.com/2011/03/30/communication-between-chrome-extension-content-scripts-and-extension-pages/

관련 문제