"SCRIPT28:堆外空间“;在使用IE9的网站上
"SCRIPT28: Out of stack space" on website using IE9
我遇到一个问题,一旦我们将网站部署到生产服务器,页面上的所有链接按钮控件都无法工作。以下是一些细节:
-
我们有三个开发环境:我们的本地机器,使用本地IIS7进行开发;测试环境,它是我们防火墙后面的实际Web服务器(IIS6);制作,这是我们的实时网络服务器(IIS6)。该网站在本地机器和测试服务器上运行良好,但一旦我们点击生产服务器上的链接按钮,它就会挂起。
-
Chrome中不存在此问题,或者FireFox中只存在于IE9中。当您将IE9置于兼容模式时,它不存在。
-
如果我使用IE9Developer工具栏并查看脚本,只要你点击其中一个链接按钮,控制台就会显示以下错误:
SCRIPT28:堆栈空间不足,第340行字符9
- 我使用了很多JQuery,想知道这是否会导致问题:但是,我没有看到javascript错误
有什么想法吗?谢谢你的建议。
正如人们在评论中所说:这意味着发生了无限递归。无论是简单的递归,还是像蛇咬尾巴一样在代码中迂回前进——未知,IE似乎都没有堆栈竞争,或者确实如此?
我在执行以下代码时重现了这个问题:
HTML
<span class="search-icon"><input title="search" type="submit" value=""></span>
JS-
(function($) {
$('.search-icon').on('click', function(e) {
// The click event will call $('.search-icon').on('click', function(e) { .. } for every time
// which make an infinte loop in click event as long as there are no stop condition added here.
$(this).find('input').click();
});
})(jQuery);
我已经通过将我的JS代码更改为:来解决这个问题
(function($) {
$('.search-icon').on('click', function(e) {
$(this).closest('form').submit();
});
})(jQuery);
我希望这个答案对你有帮助。
您可以发布代码/a到代码的链接,还是关闭此问题?
常见问题:你可能在html中有一个闭包问题,因此不同的浏览器对html层次结构的解释不同,或者你可能在for(x in y)中循环,其中x包含对y的反向引用。
查看msdn页面了解有关此错误的信息。在我的情况下,错误是由以下原因引起的:
您的代码触发了事件级联
事件级联是由触发调用堆栈上已存在的事件过程的事件引起的。。。
基本上,我试图在文件上传控件上使用控件的点击事件触发点击事件(使用jQuery)。似乎会导致无限递归。也许你的纽扣也有类似的问题。
- Angular JS IE9 Hashbang url rewriting
- 如何识别我的网站中的慢速设备
- 在Twitter上用ie9中的空白src访问iframe的contentWindow
- 用Javascript更改我网站上的字体大小
- 有任何可能将facebook实时信使整合到一个网站中
- 将电视直播频道从网站嵌入我的网站
- Windows 8固定的网站互动程序
- 门户网站:当地时间有多有用
- 正在删除node.js中已验证的网站
- 为什么在这个网站上不能通过JS访问元素
- 在IE9中的输入字段中输入焦点最近按钮
- 需要使用谷歌应用程序脚本列出谷歌域下的所有网站
- 为什么只有工厂在棱角分明的网站上被提及
- 为什么jQuery 1.8不能在IE8和InternetExplorer9中使用?(截至2012年9月的IE9最新版本)
- 为什么我的网站在IE中是空白屏幕?(包括IE9!
- 使用 javascript 在 IE9 中获取用户访问量最大的网站
- 带有javascript的网站;我不在IE9工作,但在IE9's兼容性模式-如何强制兼容性视图
- 我的网站使用jquery/javascript;t在ie9和I'I’我不知道为什么
- 如何使一个引导网站兼容IE9浏览器
- 网站适用于除Opera和IE9或更早版本之外的所有浏览器