2009-12-13 2 views

답변

6

보인다. 때 당신의 매개 변수로 배열을 전달하는 속성 또는 방법 중 하나.

:

var arrayData = [1,2,3,4,5]; 
plugin.someProperty = arrayData; 
// -or- 
plugin.callSomeMethod(arrayData); 

매개 변수 유형 NPVariantType_Object의 NPVariant로 NPObject에 얻을 것이다 당신은 다음 길이 속성을 쿼리 당신이 자바 스크립트에 배열을 반환해야하는 경우

마찬가지로
for (uint32_t i = 0; i < npvLength.value.intValue; i++) { 
    NPVariant curValue; 
    NPN_GetProperty(npp, inObject, NPN_GetIntIdentifier(i), &curValue); 
    // Do something with curValue 
} 

, 방법을 쓰는 것보다 다른 또 다른 옵션은 (객체를 에뮬레이션 :

다음 방금 루프를 할 모든 값을 얻을 수 내가 스레드에 제안한 것처럼 jldupont는 NPN_GetValue를 사용하여 DOM 윈도우에 대한 NPObject를 얻은 다음 매개 변수없이 "Array"를 호출하는 것입니다. 비어있는 JS Array 객체 (NPObject *)를 반환합니다. 그런 다음 반환하려는 항목을 반복하면서 항목을 첫 번째 (및 유일한) 매개 변수로 사용하여 "푸시 (push)"를 호출하면됩니다.

희망이 있습니다.

+0

우연히도 오픈 소스 프로젝트 인 FireBreath (http://firebreath.googlecode.com)는 이러한 모든 작업을 처리하고 추상화를 제공하므로 IE에서도 작동합니다. (저는 FireBreath의 주요 관리자 중 한 명입니다) – taxilian

+0

FireBreath의 웹 페이지는 http://www.firebreath.org로 옮겼습니다. – taxilian

2

당신은 NPObject를 사용할 수 많은 var arrayOfString={...strings here...}과 JS 객체처럼 문자열 (컨테이너 역할을하는 (이 thread 참조). 당신이 제안 jldupont 것과 다른 diretction가는 것 같은

+1

다른 방법으로 가고 싶었습니다. JS에서 플러그인으로. 입력을 주셔서 감사합니다, 그것은 나에게 매우 유용한 단서를 주었다. –