|
利用api.execScript进行两个页面的数据传递
[复制链接]
本帖最后由 马小超 于 2017-8-24 11:38 编辑
页面传递:模拟场景:A和B两个界面,从A跳入B后,获取B的页面数据再将B页面数据传入A;
1 简单的字符串传递;
B页面:
var name= '中国';
api.execScript({
name : 'A', //这里只要写A界面的名字,即从别的界面跳入A时会给其命名name;该name就是这个名字;具体参考API.openwin接口;
script: 'aa(\''+name+'\')' //首先是单引号' '把A页面方法名称写入;\''不是一个斜杠+双引号;而是\+两个'引号;\'是什么意思可以查看转义字符的内容
});
//如果需要把B页面关掉;然后调用api.closewin();即可备注:如果是传递两个参数;可以这么写: script: 'aa(\'' + name+"','"+ age+ '\');' //中间,是外层一个双引号,再加一个单引号组成
A页面:
function aa(value){
alert(value)
}
此时就可以看到数据传递过来了;
2 传递一个对象或者JSON格式的集合
B:页面
var person= {
id :'123456',
name :'马小超',
age :'12'
}
api.execScript({
name : 'A', //这里只要写A界面的名字,即从别的界面跳入A时会给其命名name;该name就是这个名字;具体参考API.openwin接口;
script: 'aa('+JSON.stringify(person)+')' //JSON.stringify方法是将json转换为字符串;
});
A:页面
function aa(value){
alert(JSON.stringify(value));//这里我也没弄明白,为什么传过来的值已经在B转为字符串了;但是这里打印还是需要转;不然会报错;
还要一点我发现这里传递过来的value居然是JSON格式;可以直接用;例如如果打印里面的age;直接alert(value.age)就可以获取到;
}
备注:查了半天的论坛,看到很多都只是技术片段的分享;所以把自己该问题发现的解决办法归纳总结了下,也非常感谢那些愿意技术分享的人;也希望其他有好的技术大家都可以分享下;如果好,就顶下支持下;谢谢;
|
|