先贴错误代码:

Uncaught RangeError: Maximum call stack size exceededat String.replace (<anonymous>)at Function.camelCase (jquery-1.8.0.min.js:2)at Function.style (jquery-1.8.0.min.js:2)at jquery-1.8.0.min.js:2at Function.access (jquery-1.8.0.min.js:2)at Function.access (jquery-1.8.0.min.js:2)at init.css (jquery-1.8.0.min.js:2)at _1a9 (jquery.easyui.min.js:2125)at HTMLDivElement.<anonymous> (jquery.easyui.min.js:2522)at Function.each (jquery-1.8.0.min.js:2)

场景

一个页面需要打开子窗口的时候,发现了个很神器的事情,有些人的电脑可以打开这个网页,有些人的电脑不能打开,哪怕是同一台电脑,也可能出现正常打开可以打开,按F12开了调试串口就无法打开了,无法打开的时候报了这个错,同时该按钮卡死,再次点击再无反应,除非刷新页面。

出现问题的代码

$(parent.window.document.body).append(win);
var obj = parent.window.$('#' + dlgname);
obj.dialog({href : url,title : title,width : w,bgiframe: true,height : h,closed : false,cache : false,resizable : true,modal : true,onClose : function() {obj.dialog('destroy').remove();}
});

这部分代码是共用的代码,所以存在问题导致多个页面同时存在该问题

原因

1、报堆栈溢出的原因:

子窗口的大小超出了当前浏览器窗口的可使用范围,所以才会出现不同人电脑出现不同的情况,因为分辨率不同,我的电脑是1080无放大的,其他人多为公司分配的768分辨率的,开了调试窗口导致可使用范围减小也是同理。

对应的解决办法就是

//将宽高与当前浏览器的可视范围比较,取较小值
width : w>document.body.clientWidth?document.body.clientWidth:w,
height : h>document.body.clientHeight?document.body.clientHeight:h,

2、出错后该按钮卡死无法再次打开的原因

说白了就是没做异常处理,子窗口的代码已经apeend到了当前页面上,只是dialog报了错

解决办法:

//相关代码try catch起来,执行dialog报错即将apeend的内容给清除掉
$(parent.window.document.body).append(win);
var obj = parent.window.$('#' + dlgname);
try{obj.dialog({href : url,title : title,width : w>document.body.clientWidth?document.body.clientWidth:w,bgiframe: true,height : h>document.body.clientHeight?document.body.clientHeight:h,closed : false,cache : false,resizable : true,modal : true,onClose : function() {obj.dialog('destroy').remove();}});
}catch(error){alert("清调整分辨率或者浏览器窗口大小" )obj.dialog('destroy').remove();
}

dialog出现Uncaught RangeError: Maximum call stack size exceeded错误相关推荐

  1. JS 异常: Uncaught RangeError: Maximum call stack size exceeded

    遇到了这个js异常, 总是吧浏览器搞崩溃,这是什么原因呢? 开始我也只能想到死循环, 也许是哪个条件判断写错了,其实不是.经过google,发现了一篇文章,内容请看: ================ ...

  2. JS报错:Uncaught RangeError: Maximum call stack size exceeded

    之前,遇到Uncaught RangeError: Maximum call stack size exceeded,查了一下,这个就是"最大堆栈超过了最大值",一般这种错误也是在 ...

  3. Uncaught RangeError: Maximum call stack size exceeded解决思路

    今天突然碰到这样的JavaScript错误:Uncaught RangeError: Maximum call stack size exceeded 这个翻译过来就是堆栈溢出了. 1.原因:有小类到 ...

  4. Uncaught RangeError Maximum call stack size exceeded

    前端报错:Uncaught RangeError:Maximum call stack size exceeded at RegExp.exec() 报错原因为栈溢出,大多因为递归导致,无限循环调用自 ...

  5. JS [Web浏览器] “Uncaught RangeError: Maximum call stack size exceeded“ (32)

    文章地址: http://www.zizhujy.com/blog/post/2012/03/18/Uncaught-RangeError-Maximum-call-stack-size-exceed ...

  6. Vue报错:Uncaught RangeError: Maximum call stack size exceeded

    vue项目放在服务器上,报错如下: 堆栈溢出: 1.原因:有小类到大类的递归查询导致溢出 2.解决方法思想: A.在做递归查询时候由大类到小类去查询 B.匹配结果后及时return 退出,防止过多查询 ...

  7. Uncaught RangeError: Maximum call stack size exceeded.

    当采用递归方式生成导航栏的子菜单时,菜单可以正常生成,但是当鼠标hover时,会出现循环调用某个(mouseenter)事件,导致最后报错.菜单溢出了. 查看报错详情: 处理方式 1.给el-subm ...

  8. Uncaught RangeError: Maximum call stack size exceeded 报错原因及解决方案

    使用谷歌localhost运行时候页面崩溃,显示链接超时,找了错误好久也上网上查了好久都没有找到错误的来源,再次检查的时候发现自己真的是很搞笑.错误如图 改错之前: 改错之后: 错误不是无缘无故就发生 ...

  9. Vue -- 项目报错整理(1):RangeError: Maximum call stack size exceeded

    这几天项目运行报了个错: Uncaught RangeError: Maximum call stack size exceeded,刚开始看到 "returnNodeParameter&q ...

最新文章

  1. 在Linux下进行Apache+tomcat整合
  2. 应用内存onLowMemory onTrimMemory优化
  3. C语言中函数可变参数解析
  4. flash socket 发对象问题
  5. 5.Java中的常量以及常量的分类
  6. idea mac 替换_Mac软件IntelliJ IDEA 上的快捷键,让你的工作更加顺畅
  7. java 如何导出json文件_java导出json格式文件的示例代码
  8. Mysql不能远程连接的解决方法
  9. c 语言 移位四舍五入,关于C 语言中的四舍五入问题
  10. 【重磅分享】从零到一搭建推荐系统指南白皮书.pdf(附48页下载链接)
  11. linux如何查看端口被哪个进程占用?
  12. loadrunner vuser 限制修改
  13. 32位xp系统识别4G以上内存
  14. 恒生电子:主推2条联盟链,但链上交易至今不到30笔 |追击上市公司
  15. URL是什么意思 ? URL介绍
  16. 因式分解理论基础(1)一元多项式
  17. phpst安装memcache扩展_超简单的wordpress网站安装教程(基于phpstudy PHP环境)
  18. android 编译libjpeg-turbo
  19. ESXi 6.7.0含RTL8168驱动安装包(亲测可用)
  20. Google Hacking 搜索教程,一步到位。

热门文章

  1. 「迅捷」校园网多设备认证
  2. 修炼内功的融云,以通讯中台赋能企业数字化升级
  3. VS2005编译器选项
  4. 音乐相册(程序员表白必备,或者生日礼物)(小白学习向)
  5. LightGBM算法详解(教你一文掌握LightGBM所有知识点)
  6. Qt QTcpSocket 客户端设计(自动重连、多线程处理、发送大数据包、同步方式)
  7. iOS 获取当前时间之后N天的日期
  8. Java实现 蓝桥杯VIP 算法提高 阮小二买彩票
  9. 如何在工作中提升自己的学习能力
  10. 2021-2027全球与中国电动汽车线束和连接器市场现状及未来发展趋势