2012-10-15 4 views
0

내 NPAPI 플러그인에서 NPObject가 함수인지 확인하고 싶습니다 (즉, 함수의 인스턴스 임). 내가 어떻게 이럴 수 있겠 어?NPAPI NPObject가 함수인지 어떻게 알 수 있습니까?

내가 '전화'라는 방법이 있는지 NPN_HasMethod()로 확인하실 수 있습니다,하지만 난 "기능 instanceof를 foo는"자바 스크립트의 동등한를 수행 할 수 있다면 더 좋은 방법이 될 것이라고 생각

내가 가진 내 'foo'NPObject를 스코프로 사용하여 NPN_Evaluate를 호출하고 "this instanceof Function"스크립트를 사용했지만 불행히도 'this'는 전역 'foo'가 아닌 전역 범위입니다. 여기에 scope 매개 변수의 의도를 오해하고 있습니까? 내가 찾은 모든 예제는 창을 사용하고 있습니다. 실제 객체 (또는 적어도 'this'또는 javascript 객체에 대한 참조)를 사용할 수 있다는 것이 (다른 많은 목적에 대해) 바람직하지만 함수인지를 판단하는 좋은 방법이 될 것입니다.

답변

1

내가 아는 유일한 방법은 NPN_Evaluation을 사용하여 전역 JavaScript 범위에 함수를 삽입 한 다음 NPObject로 호출하는 것입니다.

예를 들어, 다음과 같은 기능을 삽입 :

window.isFunction = window.isFunction || function(obj) { 
    return typeof obj === 'function'; 
}; 

그런 다음 당신은 기능과상의 NPN_InvokeDefault을 "isFunction"속성을 얻을, 윈도우의 NPObject를 얻을 수 NPAPI를 사용하여 다음을 수행 할 수 있습니다 매개 변수로 확인하고 싶습니다.

+1

이것은 전체적인 문제를 해결해줍니다. :) – Innovine