2012-11-10 2 views
2

NP API 플러그인의 함수는 NPObject를 생성하고 javascript로 반환합니다. 그런 다음 NPObject가 반환 된 javascript 변수가 플러그인의 다른 함수에 대한 매개 변수로 사용됩니다. 예 :NPObject JS 래퍼 클래스에서 NPObject를 얻는 방법

VAR의 OBJ plugin.GetObject =()

plugin.UseObject (OBJ)

그러나 제 함수 파라미터 (UseObject) 값이 원래 NPObject하지만 NPObject JS 랩퍼 클래스 아니다. NPObject JS 래퍼 클래스의 인스턴스에서 원본 NPObject를 가져 오는 방법이 있습니까?

답변

4

짧은 대답 : 수 없습니다.

더 많은 대답 : 일부 브라우저는 원래 개체를 제공하지만 요즘 대부분은 그렇지 않으며 기본 개체로 돌아 가기 위해 불투명 NPObject 인터페이스를 지나치게 참조 할 방법이 없습니다.

대체 솔루션 : NPObject에 고유 ID를 추가하고 포인터에 글로벌 맵을 추가하는 대신 그런 다음 객체라고 생각되는 NPObject를 얻으면 메소드를 호출 (또는 속성 가져 오기)하여 고유 한 ID를 얻은 다음 포인터를 찾을 수 있습니다.

이 방법은 모든 브라우저에서 일관되게 작동하는 것으로 나타났습니다.

관련 문제