一、事例说明:

aardio接收js传递的字符串、数组、对象参数

二、事例功能:

1、遍历JS对象的所有成员

2、遍历JS数组的所有成员

3、直接转换为普通的对象(json->tab)

三、效果展示:

点击链接后效果:

七、【miniblink】aardio接收js传递的字符串、数组、对象参数_第1张图片

四、代码展示:

1、关键代码:

//使用external接口定义网页脚本可调用的本地函数
wb.external = {  
    aardioCall = function(jsObject){

        winform.edit.print("-----------------遍历JS对象的所有成员-----------------------");
        for name,value in table.eachName(jsObject){
            winform.edit.print("对象",name,value);
        }
        
        winform.edit.print("-----------------遍历JS数组的所有成员-----------------------");
        for i,v in table.eachIndex(jsObject.array2){
            winform.edit.print("数组",i,v);
        
        }
        
        winform.edit.print("-----------------直接转换为普通的对象-----------------------");
        var obj = web.json.strip(jsObject);
        winform.edit.print(obj);
    };
}

*html代码无法显示,请参考底部有道分享

wb.html = /**  
    调用aardio函数external.aardioCall()操作JS对象、数组**/

七、【miniblink】aardio接收js传递的字符串、数组、对象参数_第2张图片

2、事例代码:

import win.ui;
/*DSG{{*/
var winform = win.form(text="web.blink操作JS对象和数组";right=476;bottom=899)
winform.add(
edit={cls="edit";left=6;top=55;right=471;bottom=895;db=1;dr=1;dt=1;edge=1;multiline=1;vscroll=1;z=1}
)
/*}}*/

import web.blink.form;  
var wb = web.blink.form(winform);

//使用external接口定义网页脚本可调用的本地函数
wb.external = {  
    aardioCall = function(jsObject){

        winform.edit.print("-----------------遍历JS对象的所有成员-----------------------");
        for name,value in table.eachName(jsObject){
            winform.edit.print("对象",name,value);
        }
        
        winform.edit.print("-----------------遍历JS数组的所有成员-----------------------");
        for i,v in table.eachIndex(jsObject.array2){
            winform.edit.print("数组",i,v);
        
        }
        
        winform.edit.print("-----------------直接转换为普通的对象-----------------------");
        var obj = web.json.strip(jsObject);
        winform.edit.print(obj);
    };
}
//*html代码无法显示,请参考文章底部有道分享
wb.html = /**  
    调用aardio函数external.aardioCall()操作JS对象、数组**/

winform.edit.orphanWindow();

winform.show()
win.loopMessage();

五、相关函数:

wb.external = {}//响应js调用接口

//table.eachName(表对象,排序函数,预定前排键名)
/**
for k,v in table.eachName(/*使用表中的键排序并遍历所有键值对  
参数: @1表对象, @2排序函数, @3排序表  
调用table.keys获取排序后的键名,支持_keys,_defined元方法  
所有参数用法与table.keys相同*/){

}
**/

//table.eachIndex(数组)
/**
for i,v in table.eachIndex(/*数组对象  
按数组索引大小顺序遍历数组  
支持使用对象的length属性,_length元方法确定数组的长度,  
支持对象使用_startIndex元属性自定义下标*/){

}
**/

var obj = web.json.strip(jsObject);//将一个对象转换为JSON,再转换回来,
用于将对象转换为纯粹的JS兼容的对象调用aardio函数

六、有道分享:

https://note.youdao.com/ynoteshare1/index.html?id=c971d7087d439e540053b226194672ab&type=note

七、摘抄链接:

教程:使用web.blink (miniblink) 嵌入浏览器控件:http://bbs.aardio.com/forum.php?mod=viewthread&tid=22004