html5父子页面数据传递,H5父子页面传递数据和方法通用组件: html 中,父页面嵌套iframe子页面的时候,常需要传递数据,方法回调, 这里封装了通用组件,方便自定义方法,注意,所有的方法都是...

H5父子页面传递数据和方法通用组件

介绍

html 中,父页面嵌套iframe子页面的时候,常需要传递数据,方法回调,这里封装了通用组件,方便自定义方法,注意,所有的方法都是异步回调的,并不处理返回值

使用时,需要调整一下页面的js,父子页面可以自由跨域

使用演示

父页面:

ParentPage(parentid)

1.维护多个子页面和它们的服务列表childs

2.注册服务,等待被子页面调用,可被子页面调用此服务

3.注册事件,等待自己调用,将通知到所有子页面

4.可以调用子页面的方法 childs[childid].method 来调用

父页面 示例: 1.html

var parentpage = new ParentPage("webar");

//公开一个服务

parentpage.publishService('getCamPic', function (options, callback) {

setTimeout(function () {

callback({base64: '123', type: 'jpg'});

}, 1000)

})

//公开一个事件,允许子页面被通知到

parentpage.publishEvent('onCameraReady');

setTimeout(function () {

//发起事件通知

parentpage.onCameraReady({name: 'cd'});

//调用子页面的服务

parentpage.childs['child2'].calcSum({a: 40, b: 60}, function (res) {

console.log("父页面收到子页面的calcSum结果:" + JSON.stringify(res));

})

}, 3000)

子页面 示例:2.html

子页面

ChildPage(parentid, childid)

1.可调用父页面的服务

2.可被父页面的事件通知到

3.可向父页面提供服务,父页面以childs[childid].method 来调用

//得到父页面实例

var parentpage = new ChildPage('webar', 'child2');

//父页面方法,事件初始化完毕

parentpage.ready(function (parentid) {

//调用父页面的方法

parentpage.getCamPic({quality: 0.6}, function (data) {

console.log("收到父页面的getCamPic结果:" + JSON.stringify(data));

});

//响应父页面的事件

parentpage.onCameraReady(function (cfg) {

console.log("监控到父页面的事件onCameraReady触发:" + JSON.stringify(cfg));

})

//向父页面注册一个自己提供服务

parentpage.registerChildService('calcSum', function (data, cb) {

console.log("父页面调用子页面的calcSum方法:" + JSON.stringify(data));

cb({sum: 100});

})

})

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值