过了一会儿挠了头,走了“嗯?”试图找出为什么IE在加载我的一个加载了jQuery优点的页面时会直接崩溃,我把罪魁祸首缩小到这条线
$('div#questions').hide();
当我说IE崩溃时,我的意思是它完全崩溃,试图让它的网页恢复废话失败。
我正在运行jQuery 1.4.2并使用IE 8(尚未测试任何其他版本)
我目前的解决方法是:
if ($.browser.msie) {
window.location = "http://www.mozilla.com/en-US/products/download.html";
}
出于某种原因,我觉得我的IE用户不会对这个解决方案感到满意。
有问题的div有很多内容和其他div被隐藏并再次显示,所有这些都很好用,但只有当巨型父div被隐藏时,IE才会翻出并刺伤本身。
有没有人遇到过这个问题,或者对于出了什么问题有什么想法?
编辑:
所有内容都包含在$(document).ready(function(){})中; 我的代码都是内部的,所以我不能不幸地链接它。
编辑:发现IE 8崩溃代码
<ol class="actionHelp">
<li>List the tasks (or actions) that are involved in your pattern along the top (one per column)</li>
<li>Put the starting point in the first column and the ending point in the last column.</li>
<li>To fill in the middle, simply ask: "What happens next?" If only one thing ever happens next, then it should get 100%. If 70% of the time one thing happens next, and 30% of the time another thing happens next, then put 70 in one box and 30 in the other.</li>
<li>Each row should add up to 100%</li>
<li>The last row is the exit and should not have any percentages in it.</li>
</ol>
我不知道为什么这会导致IE出现问题,但这里是CSS
.actionHelp {
margin: 0 0 0 20px;
}
.actionHelp li {
margin: 5px 0;
}
使用无序列表而不是有序列表不会导致崩溃,但是一旦我将其切换回来,我再次遇到崩溃,这个元素不需要被命令我只是把它作为步骤使得逻辑感觉,我仍然想知道为什么这会吓到IE。
jQuery + IE +隐藏ol元素= OMG IE FAIL吗?或者有解决方法吗?
它似乎会影响任何列表样式,而不是列表样式
答案 0 :(得分:4)
你的问题显然不是div#questions
本身。您是否可以尝试删除(或注释掉)所有div#questions
的内容并一次添加一个元素,直到IE再次开始崩溃?
找到罪魁祸首后,再对该元素做同样的事情,删除所有内容并添加每个元素,然后在每个元素之后进行测试。
继续这样做,直到找到问题的真正根源。我知道这是一种非常低技术的解决方案,但通常它也是最快的解决方案。
答案 1 :(得分:1)
逐步浏览IE调试器中的代码(使用非缩小的jQuery)并查看它死掉的行。
答案 2 :(得分:0)
.hide()
只是将元素样式设置为display:none
的包装器。您是否尝试document.getElementById("#questions").style.display = "none"
只是为了看看是否有任何区别?它可能有助于您确定jQuery本身是否导致冲突。
答案 3 :(得分:0)
关闭扩展程序。
非常不太可能javascript是您唯一的问题。
答案 4 :(得分:0)
在我的案例中,Fiddler在mshtml.dll上发布了IE崩溃的原因。