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数据。而传递单字符传的方式就没有这种注意点了。

// 将JSON的对象转成JSON字符串,作为函数的参数
api.execScript({
      script: "orderDetailDataFunc('"+JSON.stringify(ret.data[0])+"');"
});
function orderDetailDataFunc(JsonStr) {
      console.log("传递的数据为" + JsonStr);
    // 将JSON字符串转成JSON对象,该页面就可以使用点语法取出JSON对象中的数据
      orderDetailData = JSON.parse(JsonStr);
}
上一篇下一篇

猜你喜欢

热点阅读