자바 스크립트에서 배열을 처리하고 싶습니다. (즉, html 페이지에서 플러그인 코드까지, HTML 코드의 값을 플러그인의 변수로 가져 와서 코드 내에서 수정할 수 있고 다른 목적으로 처리 할 수 있습니다.)npapi webkit 플러그인 배열 처리
하지만이 문제가 있습니다. 내부적으로 배열이 NPObject로 처리된다는 것을 알고 있습니다. 배열의 길이와 배열의 요소를이 NPObject에서 검색하려고하지만 배열의 길이가 0이 아니더라도 길이가 0이 아닌 것으로 생각됩니다. 내가 배열이있는 HTML 페이지를
어떤 제안은 환영 받다는 .... HTML 페이지는 다음과 같다 :
이<html>
<script type="text/javascript">
var arrayData = [9,1,2,3,4,5,6,7,8,9];
function handleEvent(e) {
if (e.keyCode == 55) {
document.getElementById('arrayint_ele_disp').innerHTML = arrayData;
process_intarray(arrayData);
}
}
function process_intarray(arrayData){
obj = document.getElementById("Obj");
if(obj){
obj.process_array_intval(arrayData);
}
}
</script>
<body onload="init()" onkeydown="handleEvent(event)">
<div id ="arrayint_ele_disp" style="position:absolute;left:100px;top:250px">
ARRAY_INT VAL </div>
</body>
</html>
배열 요소를 처리하는 내 플러그인 코드가 folows과 같다 : 여기서
이 함수 NPN_GetProperty (m_npp, inobject, NPN_GetStringIdentifier ("길이") & npvlength)에bool ScriptableObject::process_intarray(const NPVariant* args, uint32_t
argCount, NPVariant* result)
{
//Get the Length of the array
//NPObject *inobject = args[0].value.objectValue;
NPObject *inobject = args->value.objectValue;
bool bRetval = false;
NPVariant npvlength;
//NPIdentifier id;
bRetval =
NPN_GetProperty(m_npp,inobject,NPN_GetStringIdentifier("length"),&npvlength);
printf("\n NPN_GetProperty length type %d value : %d\n"
,npvlength.type,npvlength.value.intValue);
//Get the array elements
int i = 0;
for(i = 0; i < npvlength.value.intValue; i++)
{
NPVariant CurVal;
NPN_GetProperty(m_npp,inobject,NPN_GetIntIdentifier(i),&CurVal);
m_prop_array_intval[i] = CurVal.value.intValue;
}
return true;
}
; 사실을 돌려주고있다.
하지만 NPVariantType_Double로 0을 입력하고 npvlength의 길이를 확인하는 중입니다. 나는
어떤 제안을 환영합니다 ...
안녕 조지, 제안 주셔서 감사 ... 나는 또한 npvlength.value.doubleValue 시도했지만 여전히 0입니다. 배열 요소는 정수이므로 npvlength.value.intValue를 사용하고 있습니다 ... 다른 제안 사항 ... – Techtotie
@ user1523492 : 단지'printf()'명령문을 조정하여'% f '% d 대신'? –
안녕하세요. 유감입니다. 작동합니다 ... 한 번 더 확인했습니다 .... 감사합니다 .-) – Techtotie