2012-10-15 3 views
2

NPAPI 플러그인에서 javascript 개체의 속성을 가져 오려고하지만 NPN_HasProperty(), NPN_HasMethod() 및 NPN_Enumerate()에 문제가있어 반환하지 않고 반환하지 않습니다.NPAPI 속성 가져 오기

예를 들어, x = new Array로 배열을 만들면; Javascript x.hasOwnProperty ('length')는 true를 반환하고 'length'에 대한 NPN_HasProperty()는 true를 반환하지만 예상대로 NPN_Enumerate는이 속성을 나열하지 않습니다.

관련 문제에서 개체가 기능인지 검색하고 싶습니다. NPAPI 플러그인에서이 작업을 수행하는 방법에 대한 제안 사항이 있습니까? NPN_HasMethod ('call')를 호출하려고하는데 false가 반환됩니다 ('call'은 프로토 타입에 정의되어 있습니까?). 상속을 따르거나 "x instanceof Function" ..?

속성을 열거하는 방법에 대한 추가 정보, 특히 상속 그래프를 따르는 방법은 정말 환영받을 것입니다. 감사합니다.

답변

1

NPN_Enumerate는 재미있는 일입니다. 그것은 NPN_Construct와 동시에 도입되었으며 적어도 많은 브라우저에서 네이티브 javascript 객체에서 작동하지 않습니다. 대부분 NPObject를 열거하거나 구성 할 수 있도록 제공됩니다.

이미 특정 질문을하는 스레드에서 다른 질문에 답변했습니다. 혼란을 피하기 위해 여기에 한 번에 한 가지 질문 만하는 것이 가장 좋습니다.

NPN_Evaluate가있는 페이지에 javascript 함수를 삽입하여 속성을 열거하고 배열이나 쉼표로 구분 된 문자열을 반환해야하는 경우 (나는 ' NPN_GetProperty 호출을 통해 반복해야 함).

+1

도움 주셔서 감사합니다. enumerable 속성과 enumerable 속성이 모두 있다는 것을 발견했습니다. 자세한 내용은 [here] (http://www.2ality.com/2011/07/js-properties.html)을 참조하십시오. 열거 불가능한 속성은 for-in 루프 및 NPN_Enumerate에서 숨겨집니다. – Innovine