apicloud使用api.execScript({})传递JS
2019-12-17 本文已影响0人
CoderZb
apicloud中使用
api.execScript({})
来传递数据是非常常见且实用的做法:
- 传递单字符串的方式这里就不介绍了我的这篇文章有。
- 下面介绍一下使用
api.execScript({})
传递json数据的做法和注意点。
ret对象
包含着如下json
{
"msg": "查询成功!",
"data": [
{
"user_name": "游客",
"n_look": 0,
"settlement": "月结",
"order_type": 3,
"title": "水管维修",
"user_phone": "19300000004",
"interview_time": "2019-12-19 14:36:00",
"user_id": 37434,
"offer_price": "10.00",
"time": null,
"worktype": "可长期做",
"needcount": 1,
"statetype": 1,
"lng": "119.5001357006763",
"education_requirements": 0,
"is_collect": 0,
"need_age": "不限",
"is_expire": 1,
"last_look": 0,
"welfare": "",
"share_message": "",
"imagelist": [
],
"speciality_name": null,
"date": null,
"distance": 0.1,
"lat": "35.43889696643526",
"unit": "元/月",
"price": "1700",
"working_life": 0,
"need_sex": 0,
"content": "快来吧",
"address": "山东省日照市东港区山东路518号"
}
],
"code": 1
}
A页面的frame向A页面的window传递json数据
强烈注意:
传递json数据,函数必须被双引号包围,然后 参数必须是单引号嵌双引号的方式,不采用这种方式,无法给window传递json数据
。而传递单字符传的方式就没有这种注意点了。
- A的frame页面
// 将JSON的对象转成JSON字符串,作为函数的参数
api.execScript({
script: "orderDetailDataFunc('"+JSON.stringify(ret.data[0])+"');"
});
- A的window页面
function orderDetailDataFunc(JsonStr) {
console.log("传递的数据为" + JsonStr);
// 将JSON字符串转成JSON对象,该页面就可以使用点语法取出JSON对象中的数据
orderDetailData = JSON.parse(JsonStr);
}