2011-01-05 2 views
1

DOM 요소에 대한 핸들을 얻는 방법에 대해 읽었습니다. 이것은 매우 유용한 링크였습니다 : http://forums.mozillazine.org/viewtopic.php?f=27&t=1521545NPAPI - 플러그인 내에서 자바 스크립트 객체/함수 사용

제 질문은 지금 자바 스크립트 var/개체, 또는 임의의 함수에 대한 핸들을 얻을 수 있습니까?

페이지로드

, 나는 이런 식으로 뭔가를 실행하는 스크립트 ...

var controller = new Controller() 

또는 지금

function callme(param1, param2) { ... } 

, 내 플러그인 내에서, 나는에서 메소드를 호출 할 수 있도록하려면이 내 컨트롤러 개체. 또는 함수 호출을 실행합니다. 이것이 가능하며 어떻게해야합니까?

감사합니다,

크리스는 DOM 창에 대한 NPObject을 얻을하는 방법을 알고 귀하의 링크에서

답변

7

; 거기에서 당신이 알아야 할 것은 모든 글로벌 자바 스크립트 변수가 실제로 윈도우의 속성이라는 것입니다. 전역 범위에 이런 짓을했다면

var controller = new Controller(); 

후 window.controller는 변수, 그래서 당신은 할 필요가 :

/* Get window object */ 
NPObject* window = NULL; 
NPN_GetValue(aInstance, NPNVWindowNPObject, &window); 

/* Get document object */ 
NPVariant controllerVar; 
NPIdentifier id = NPN_GetStringIdentifier("controller"); 
NPN_GetProperty(aInstance, window, id, &controllerVar); 
NPObject* document = NPVARIANT_TO_OBJECT(controllerVar); 

할 수 있습니다 다음 Controller 개체에 대한 액세스 속성이나 메소드 호출. 컨트롤러가 함수라면, NPN_InvokeDefault으로 호출 할 수 있습니다.

BTW, FireBreath이 대부분을 자동화합니다.

+0

대단히 고마워요. 귀하의 블로그와 3 부분으로 된 플러그인 자습서를 읽었지 만, 그게 내 DOM/자바 스크립트 노하우가 부족한 것처럼 보입니다. 위의 사실로 가정하고, 크롬의 자바 스크립트 콘솔을 사용하여 창 개체의 속성을 나열했지만 다른 오류가 내 개체가 창 자식이되지 않도록 방해합니다. 신속한 답변에 감사드립니다. – chrisd