第三方提供了一个ocx,其中有个事件的返回值是Array类型的。我需要在js中取得这个数据。
<script language='javascript' >
var pinBlock = new Array(16); //定义了数组pinBlock
</script><script language='javascript' for='KXPinpad' event='PinFormatted(pinBlock)'> //把数组变量带入事件
alert('123----'+pinBlock.length);
</script>
执行结果是 123----undefined.如果不把数组变量带入PinFormatted()事件,那么执行结果是 123----16.感觉是事件没有把正确的值传给pinBlock.后来从网上查到OCX 返回值必须是 Variant(), 然后可以通过. 我就把alert的地方换成下面的代码,
var vba = ocx.GetArray();
var jsa = new VBArray(vba).toArray();
alert(jsa[0]); 但是在执行 ocx.GetArray(); 就抛错了“对象不支持此属性和方法”实在没招了,请各位大虾指点!!
<script language='javascript' >
var pinBlock = new Array(16); //定义了数组pinBlock
</script><script language='javascript' for='KXPinpad' event='PinFormatted(pinBlock)'> //把数组变量带入事件
alert('123----'+pinBlock.length);
</script>
执行结果是 123----undefined.如果不把数组变量带入PinFormatted()事件,那么执行结果是 123----16.感觉是事件没有把正确的值传给pinBlock.后来从网上查到OCX 返回值必须是 Variant(), 然后可以通过. 我就把alert的地方换成下面的代码,
var vba = ocx.GetArray();
var jsa = new VBArray(vba).toArray();
alert(jsa[0]); 但是在执行 ocx.GetArray(); 就抛错了“对象不支持此属性和方法”实在没招了,请各位大虾指点!!
var s=pinBlock.join(",")
PinFormatted(s)
在PinFormatted里面再把s字符串split成数组
var jsa = new VBArray(pinBlock).toArray();
alert(jsa.length);
</script>