dialog出现Uncaught RangeError: Maximum call stack size exceeded错误
先贴错误代码:
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错误相关推荐
- JS 异常: Uncaught RangeError: Maximum call stack size exceeded
遇到了这个js异常, 总是吧浏览器搞崩溃,这是什么原因呢? 开始我也只能想到死循环, 也许是哪个条件判断写错了,其实不是.经过google,发现了一篇文章,内容请看: ================ ...
- JS报错:Uncaught RangeError: Maximum call stack size exceeded
之前,遇到Uncaught RangeError: Maximum call stack size exceeded,查了一下,这个就是"最大堆栈超过了最大值",一般这种错误也是在 ...
- Uncaught RangeError: Maximum call stack size exceeded解决思路
今天突然碰到这样的JavaScript错误:Uncaught RangeError: Maximum call stack size exceeded 这个翻译过来就是堆栈溢出了. 1.原因:有小类到 ...
- Uncaught RangeError Maximum call stack size exceeded
前端报错:Uncaught RangeError:Maximum call stack size exceeded at RegExp.exec() 报错原因为栈溢出,大多因为递归导致,无限循环调用自 ...
- 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 ...
- Vue报错:Uncaught RangeError: Maximum call stack size exceeded
vue项目放在服务器上,报错如下: 堆栈溢出: 1.原因:有小类到大类的递归查询导致溢出 2.解决方法思想: A.在做递归查询时候由大类到小类去查询 B.匹配结果后及时return 退出,防止过多查询 ...
- Uncaught RangeError: Maximum call stack size exceeded.
当采用递归方式生成导航栏的子菜单时,菜单可以正常生成,但是当鼠标hover时,会出现循环调用某个(mouseenter)事件,导致最后报错.菜单溢出了. 查看报错详情: 处理方式 1.给el-subm ...
- Uncaught RangeError: Maximum call stack size exceeded 报错原因及解决方案
使用谷歌localhost运行时候页面崩溃,显示链接超时,找了错误好久也上网上查了好久都没有找到错误的来源,再次检查的时候发现自己真的是很搞笑.错误如图 改错之前: 改错之后: 错误不是无缘无故就发生 ...
- Vue -- 项目报错整理(1):RangeError: Maximum call stack size exceeded
这几天项目运行报了个错: Uncaught RangeError: Maximum call stack size exceeded,刚开始看到 "returnNodeParameter&q ...
最新文章
- 在Linux下进行Apache+tomcat整合
- 应用内存onLowMemory onTrimMemory优化
- C语言中函数可变参数解析
- flash socket 发对象问题
- 5.Java中的常量以及常量的分类
- idea mac 替换_Mac软件IntelliJ IDEA 上的快捷键,让你的工作更加顺畅
- java 如何导出json文件_java导出json格式文件的示例代码
- Mysql不能远程连接的解决方法
- c 语言 移位四舍五入,关于C 语言中的四舍五入问题
- 【重磅分享】从零到一搭建推荐系统指南白皮书.pdf(附48页下载链接)
- linux如何查看端口被哪个进程占用?
- loadrunner vuser 限制修改
- 32位xp系统识别4G以上内存
- 恒生电子:主推2条联盟链,但链上交易至今不到30笔 |追击上市公司
- URL是什么意思 ? URL介绍
- 因式分解理论基础(1)一元多项式
- phpst安装memcache扩展_超简单的wordpress网站安装教程(基于phpstudy PHP环境)
- android 编译libjpeg-turbo
- ESXi 6.7.0含RTL8168驱动安装包(亲测可用)
- Google Hacking 搜索教程,一步到位。