2013-08-21 2 views
0

크롬 확장을 만들었습니다. 이제 NPAPI 플러그인으로 변경하고 싶습니다. 나는 플러그인을 만들기 위해 npsimple 샘플 코드 (크롬에서)를 사용했다. 이제 문제는 다음과 같습니다NPAPI 플러그인 코드에서 자바 스크립트 파일 호출

내가 자바 스크립트 크롬 확장 파일 다음 코드를 한 : 난 확장 아이콘을 클릭 그 어느 때

//test.js 

chrome.browserAction.onClicked.addListener(function(tab) 
{ 
    //this file calls content script file 
}); 

이 파일이라고합니다. 이제 확장을 클릭하여이 파일을 호출하고 싶지 않습니다 (플러그인이로드 될 때 호출하려고합니다). 그래서 우리는 다른 이벤트도 가질 수 있습니다. 이제 NPAPI plugin.i에서 test.js 파일을 호출해야합니다. 어떻게해야 할 지 잘 모릅니다. NPN_INVOKE 내부의 NPAPI Plugin에서 가짜 이벤트를 발생시키고 js 파일에 리스너를 등록하고 js 파일을 실행할 수 있는가? 또는 이 파일을 NPAPI 코드에 삽입 할 수있는 방법이 있습니다.

다른 더 좋은 방법이 .. 사전에

도와주세요 .. 덕분에 ...

+0

크롬 + 크롬이 NPAPI 지원을 중단했다는 사실을 알고 싶습니다. http://blog.chromium.org/2014/05/update-on-npapi-deprecation.html – ftraian

답변

0

두 가지 옵션이 있습니다. 당신은 NPN_Evaluate를 사용하거나 NPN_GetValue으로 window 객체에 대한 참조를 얻을 수 있습니다 :

NPObject* window; 
NPError err = NPN_GetValue(pNPP, NPNVWindowNPObject, &window); 

당신이 다음 NPN_Invoke와 글로벌 자바 스크립트 함수를 호출하고 NPN_GetPropertyNPN_SetProperty와/세트 특성을 얻을 수 NPObject 창을 일단.

FireBreath을 사용하면이 모든 작업을 크게 단순화 할 수 있습니다.

+0

js 파일을 호출 할 수 있습니다. 지금 나는 또 다른 문제가있다. 당신은 콘텐츠 스크립트에 플러그인을 주입하는데 나를 도울 수 있습니까? 이 코드의 문제점을 확인해 주시겠습니까? function addIt() { myEmbed = document.createElement ('embed'); myEmbed.attributes (여기에 속성 추가); document.getElementByTagName ('head') [0] .append ('myEmbed'); } – user2094814

+0

은 별도의 질문이어야하며이 답변이 충분하면 답장으로 표시해야합니다. 댓글은 명확하게 설명 할 수는 있지만 전혀 관련이없는 새로운 질문은 아닙니다. 그러나 문서의 머리 부분에 embed 또는 object 태그를 추가하는 것이 효과적 일 수는 없다고 말할 것입니다.이 태그는 본문에 있어야합니다. – taxilian

관련 문제