我正在使用直接Web Remoting (DWR) JavaScript库文件,只在Safari(桌面和iPad)中得到一个错误
它说
超过最大调用堆栈大小。
这个错误到底是什么意思,它是否完全停止处理?
Safari浏览器也有任何修复(实际上是在iPad Safari上,它说
JS:执行超时
我认为这是相同的调用堆栈问题)
我正在使用直接Web Remoting (DWR) JavaScript库文件,只在Safari(桌面和iPad)中得到一个错误
它说
超过最大调用堆栈大小。
这个错误到底是什么意思,它是否完全停止处理?
Safari浏览器也有任何修复(实际上是在iPad Safari上,它说
JS:执行超时
我认为这是相同的调用堆栈问题)
当前回答
遇到同样的问题,不知道怎么回事,开始责怪巴别塔;)
在浏览器中不返回任何异常的代码:
if (typeof document.body.onpointerdown !== ('undefined' || null)) {
问题是严重创建||(或)部分Babel创建自己的类型检查:
function _typeof(obj){if(typeof Symbol==="function"&&_typeof(Symbol.iterator)==="symbol")
所以删除
|| null
让巴别塔翻译起作用了。
其他回答
你可以在crome浏览器中找到你的递归函数,按ctrl+shift+j,然后source选项卡,它会给你代码编译流程,你可以在代码中使用断点。
遇到同样的问题,不知道怎么回事,开始责怪巴别塔;)
在浏览器中不返回任何异常的代码:
if (typeof document.body.onpointerdown !== ('undefined' || null)) {
问题是严重创建||(或)部分Babel创建自己的类型检查:
function _typeof(obj){if(typeof Symbol==="function"&&_typeof(Symbol.iterator)==="symbol")
所以删除
|| null
让巴别塔翻译起作用了。
发送输入元素而不是它们的值很可能会像FK提到的那样解决它
我知道这个帖子很旧了,但我认为值得一提的是我发现这个问题的场景,所以它可以帮助其他人。
假设你有这样的嵌套元素:
<a href="#" id="profile-avatar-picker">
<span class="fa fa-camera fa-2x"></span>
<input id="avatar-file" name="avatar-file" type="file" style="display: none;" />
</a>
您不能在其父元素的事件内操作子元素事件,因为它会传播到自身,进行递归调用,直到抛出异常。
所以这段代码会失败:
$('#profile-avatar-picker').on('click', (e) => {
e.preventDefault();
$('#profilePictureFile').trigger("click");
});
你有两个选择来避免这种情况:
将子对象移动到父对象的外部。 将stopPropagation函数应用于子元素。
如果您不小心导入/嵌入了相同的JavaScript文件两次,有时会出现这种情况,值得在检查器的资源选项卡中检查。