初次使用bui项目实战,不太懂如何操作,请教一下,谢谢!
1、多页模式开发,BUI v1.8.5 。
2、业务页面用于选择已有银行账号,使用 bui.page 方法居中弹出子窗口,iframe: true。
希望实现子窗口选中内容后,自动关闭当前弹窗。
查了相当文档,以下方法有点类似,但不知道在多页模式下如何获得module.id。
var dialog = bui.history.getPageDialog(module.id);// dialog.close();
----iframe 里面 可能要加上 window.parent.bui.history.getPageDialog("bank_account_select").close() ; 还有一种,给它加上 bui.page({uid:"xxx"}) ; window.parent.bui.cmd("xxx:close"); 当然,你使用的方式也是可以的。嗯评论有bug,不能用复制粘贴,不然检测不到,回头再看看啥原因
咱们这个评论窗口的判断字符长度有问题,我打了很多字,有中文有英文,也分行,一直提示说“评论最少输入3个字符”。写了好多次都发表不了。再次谢谢你的回复。
按你的办法还是不行。dialogid我赋了一个bank_account_select,bui.history.getPageDialog("bank_account_select").close()一直提示,加个parent也不行。目前暂时用parent.$('#bank_account_select').hide()处理关闭。
iframe:true 的设计主要是用在展示第三方的,可以配置 close: true; 会有个x,来关闭这个 page。 你在iframe里面要操作这个dialog关闭的话,可以试试 bui.page({ dialogid:"xxx"}) ,在iframe里面,通过 bui.history.getPageDialog("xxx").close() 之类的方式,试试,这个我们也没实际操作过,要交互的情况下,都是采用标准组件化,异步请求接口的方式。
我的问题,就是想在这个iframe页面,通过parent操作,把当前这个page关闭。parent.$('#' + field_id).val('xxxxxxxx'); 已测试通过,但窗口要手工关闭。 pc版在用layui,是这样实现在的。 var index = parent.layer.getFrameIndex(window.name); parent.layer.close(index);
第一次,使用bui.page,url是本地目标页面,iframe默认,但请求时不知道为什么,自动变成.js后辍导致失败(实际.php),放弃; 第二次,把iframe改成ture,就可以实现自已弹出目标页面,一直沿用下来,其它操作不影响,挺好的;
不理解的话可以继续评论交流
有些背景不太清楚。 iframe: true 可以理解为这个是第三方的页面,只有展示权,没有操作权吗?如果是这种情况,那只能通过 iframe:false, bui.page 加载一个自定义的组件,这个自定义组件里面有 iframe 用于加载第三方的页面,并且自定义一个按钮,用来跟 bui的交互。 bui.page 如果 iframe:false 的情况下,加载的是本地的标准组件,里面就还是可以自动获取到对话框的id。 也可以 bui.page 初始化时传一个自定义的 dialogid, 这样里面也可以把 module.id 改为自定义的id。
微信公众账号
微信扫一扫加关注
BUI开发者交流群2
QQ扫码加群
微信小程序
微信扫一扫体验
----
iframe 里面 可能要加上 window.parent.bui.history.getPageDialog("bank_account_select").close() ;
还有一种,给它加上 bui.page({uid:"xxx"}) ; window.parent.bui.cmd("xxx:close");
当然,你使用的方式也是可以的。
嗯评论有bug,不能用复制粘贴,不然检测不到,回头再看看啥原因
咱们这个评论窗口的判断字符长度有问题,我打了很多字,有中文有英文,也分行,一直提示说“评论最少输入3个字符”。写了好多次都发表不了。再次谢谢你的回复。
按你的办法还是不行。dialogid我赋了一个bank_account_select,bui.history.getPageDialog("bank_account_select").close()一直提示,加个parent也不行。目前暂时用parent.$('#bank_account_select').hide()处理关闭。
iframe:true 的设计主要是用在展示第三方的,可以配置 close: true; 会有个x,来关闭这个 page。 你在iframe里面要操作这个dialog关闭的话,可以试试 bui.page({ dialogid:"xxx"}) ,在iframe里面,通过 bui.history.getPageDialog("xxx").close() 之类的方式,试试,这个我们也没实际操作过,要交互的情况下,都是采用标准组件化,异步请求接口的方式。
我的问题,就是想在这个iframe页面,通过parent操作,把当前这个page关闭。parent.$('#' + field_id).val('xxxxxxxx'); 已测试通过,但窗口要手工关闭。
pc版在用layui,是这样实现在的。
var index = parent.layer.getFrameIndex(window.name);
parent.layer.close(index);
第一次,使用bui.page,url是本地目标页面,iframe默认,但请求时不知道为什么,自动变成.js后辍导致失败(实际.php),放弃;
第二次,把iframe改成ture,就可以实现自已弹出目标页面,一直沿用下来,其它操作不影响,挺好的;
不理解的话可以继续评论交流
有些背景不太清楚。
iframe: true 可以理解为这个是第三方的页面,只有展示权,没有操作权吗?如果是这种情况,那只能通过 iframe:false, bui.page 加载一个自定义的组件,这个自定义组件里面有 iframe 用于加载第三方的页面,并且自定义一个按钮,用来跟 bui的交互。
bui.page 如果 iframe:false 的情况下,加载的是本地的标准组件,里面就还是可以自动获取到对话框的id。 也可以 bui.page 初始化时传一个自定义的 dialogid, 这样里面也可以把 module.id 改为自定义的id。