其小本
其小本
  • 发布:2017-04-03 23:11
  • 更新:2019-07-08 16:17
  • 阅读:3145

mui.prompt div模式中执行mui.back()报“Maximum call stack size exceeded”

分类:MUI

详细问题描述
[内容]
在mui.prompt的div模式下,callback方法里执行mui.back(),报错“栈溢出”;

运行环境
安卓
[系统版本]
Android 6.0.1,MIUI8.2.1.0
[IDE版本]
8.0.2.201703061842
[mui版本]
v3.6.0
附件
[代码片段]
document.getElementById("btn-perimeter-addcustom").addEventListener('tap', function(e) {
//修复iOS 8.x平台存在的bug,使用plus.nativeUI.prompt会造成输入法闪一下又没了
e.detail.gesture.preventDefault();
var btnArray = ['取消', '确定'];
mui.prompt('请输入您自定义的周长数:','0','提示',btnArray,function(e) {
if(e.index == 1) {
app.setNewperimeter(e.value);
}else{
//关闭当前页并返回
mui.back();
}
},'div');
document.querySelector('.mui-popup-input input').type='number';
});

2017-04-03 23:11 1 条评论 负责人:无 分享
已邀请:
s***@163.com

s***@163.com - 90后it男

错误代码:

/**

  • 为class含有back_imformation的元素添加返回提示
    */
    mui("headers").on('tap','.back_imformation',function(){
    console.log(2323)
    mui.confirm('确认取消发布?','',['确认','取消'],function (e) {
    console.log("e.index"+e.index)
    if(e.index == 0){
    console.log(111222)
    mui.back()
    }
    },'div')
    })

发生问题可能原因:confirm()创建了一个页面,返回又返回到原始页面触发方法,导致方法持续执行。控制台无限输出e.index与111222。

可以使用代码:

/**

  • 为class含有back_imformation的元素添加返回提示
    */
    $(".back_imformation").on('tap',function(){
    var currnt_page = plus.webview.currentWebview();
    mui.confirm('确认取消发布?','',['确认','取消'],function (e) {
    console.log("e.index"+e.index)
    if(e.index == 0){
    currnt_page.close();
    }
    },'div')
    })
  • 3***@qq.com

    按照这个方法是可以,不过返回的时候页面跳动很大

    2021-01-30 15:50

syll

syll

关注一下,我也遇到了这个问题。

s***@foxmail.com

s***@foxmail.com

我也出现了这个问题

gzg

gzg - 努力生活的IT男

同问, 一直提示Maximum call stack size exceeded.

的撒

的撒 - Stager

可以尝试一下加定时器

该问题目前已经被锁定, 无法添加新回复