为什么我的网站在IE中崩溃?

时间:2021-05-16 08:44:09

My site works fine in Firefox, but it crashes in IE.

我的站点在Firefox中运行良好,但在IE中崩溃。

I am using alot of jQuery in order to fade in content. When the user clicks on one of the above links a few times, it will crash in IE.

我使用了大量的jQuery来减少内容。当用户单击上面的某个链接时,它会在IE中崩溃。

Here is my site: Idea Palette

这是我的网站:创意调色板。

I have absolutely no idea why the site crashes in IE. I don't even know where to begin to debug my problem. I don't have Visual Studio on my computer, but on my friends computer Visual Studio reads a message of "An unhandled win32 exception occurred in iexplore.exe[####]"

我完全不知道网站为什么会崩溃。我甚至不知道该从哪里开始调试我的问题。我的电脑上没有Visual Studio,但在我的朋友电脑Visual Studio上,我读到一个消息:“一个未处理的win32异常发生在iexplore.exe[###]中”。

Does anyone have any ideas?

有人有什么想法吗?

4 个解决方案

#1


12  

Here you go. It has something to do with your DirectX filter (probably what's doing the fades). Here's the stack, and EAX is NULL. Whatever the code is doing is trying to deref EAX:

给你。它与你的DirectX过滤器有关系(可能是正在做的渐变)。这是堆栈,EAX是空的。无论代码在做什么,都是在试图对EAX进行分析:

CDXTFilterBehavior::_ClearSurface:
6C8E87E1  mov         edi,edi 
6C8E87E3  push        ebp  
6C8E87E4  mov         ebp,esp 
6C8E87E6  push        ecx  
6C8E87E7  mov         eax,dword ptr [ebp+0Ch] 
6C8E87EA  mov         ecx,dword ptr [eax] <--- EAX is NULL

>   dxtrans.dll!CDXTFilterBehavior::_ClearSurface()     
    dxtrans.dll!CDXTFilterBehavior::_DrawUnfilteredElementLayers()  
    dxtrans.dll!CDXTFilterBehavior::_DrawElementWithProceduralSurfaces()    
    dxtrans.dll!CDXTFilterBehavior::_ExecuteFilterChain()   
    dxtrans.dll!CDXTFilterBehavior::Draw()  
    mshtml.dll!CPeerHolder::Draw()  
    mshtml.dll!CLayout::DrawClientLayers()  
    mshtml.dll!CDispContainer::DrawSelf()   
    mshtml.dll!CDispNode::Draw()    
    mshtml.dll!CDispContainer::DrawChildren()   
    mshtml.dll!CDispContainer::DrawSelf()   
    mshtml.dll!CDispNode::Draw()    
    mshtml.dll!CDispContainer::DrawChildren()   
    mshtml.dll!CDispContainer::DrawSelf()   
    mshtml.dll!CDispNode::Draw()    
    mshtml.dll!CDispContainer::DrawChildren()   
    mshtml.dll!CDispContainer::DrawSelf()   
    mshtml.dll!CDispNode::Draw()    
    mshtml.dll!CDispContainer::DrawChildren()   
    mshtml.dll!CDispContainer::DrawSelf()   
    mshtml.dll!CDispNode::Draw()    
    mshtml.dll!CDispContainer::DrawChildren()   
    mshtml.dll!CDispContainer::DrawSelf()   
    mshtml.dll!CDispNode::Draw()    
    mshtml.dll!CDispRoot::DrawEntire()  
    mshtml.dll!CDispRoot::DrawRoot()    
    mshtml.dll!CView::RenderView()  
    mshtml.dll!CDoc::OnPaint()  
    mshtml.dll!CServer::OnWindowMessage()   
    mshtml.dll!CDoc::OnWindowMessage()  
    mshtml.dll!CServer::WndProc()   
    user32.dll!_InternalCallWinProc@20()    
    user32.dll!_UserCallWinProcCheckWow@32()    
    user32.dll!_CallWindowProcAorW@24()     
    user32.dll!_CallWindowProcW@20()    
    user32.dll!_InternalCallWinProc@20()    
    user32.dll!_UserCallWinProcCheckWow@32()    
    user32.dll!_DispatchClientMessage@20()  
    user32.dll!___fnDWORD@4()   
    ntdll.dll!_KiUserCallbackDispatcher@12()    
    user32.dll!_NtUserDispatchMessage@4()   
    user32.dll!_DispatchMessageWorker@8()   
    user32.dll!_DispatchMessageW@4()    
    ieframe.dll!CTabWindow::_TabWindowThreadProc()  
    kernel32.dll!@BaseThreadInitThunk@12()  
    ntdll.dll!___RtlUserThreadStart@8()     
    ntdll.dll!__RtlUserThreadStart@8()  

Perhaps you're removing an element from the DOM while the transform is still operating on it?

也许您正在从DOM中删除一个元素,而转换仍然在运行它?

#2


10  

I can suggest that you have to follow the "Divide and Conquer Strategy".

我可以建议你必须遵循“分而治之”的策略。

Remove all your javascript, and try to load it, if it fail the problem is with the code you have removed. Now add again "half" of the code that you have removed, if it didn't crash then the problems isn't in this half, if it crashes again then it is in the half you have added. Now you have to keep adding "half" of the remaining code when it works, or removing half of the code you have added if it fails. If you keep doing this eventually you will led to a piece of code that you can't divide and if added make IE crash.

删除所有的javascript,并尝试加载它,如果它失败了,问题是您已经删除的代码。现在再加上你已经删除的代码的一半,如果它没有崩溃,那么问题不在这一半,如果它再次崩溃,那么它就在你添加的一半。现在,当它工作时,您必须继续添加剩余代码的“一半”,或者如果它失败了,就删除掉一半的代码。如果你一直这样做,最终你会得到一段你无法分割的代码,如果添加了IE崩溃。

This will not solve your bug but it may give you an idea where the real problem is.

这不会解决你的问题,但它可能会让你知道真正的问题在哪里。

#3


1  

This is an XP specific issue. We have a full team of developers looking into the issue so you will not see the same issue in Vista.

这是一个XP特定的问题。我们有一个完整的开发团队来研究这个问题,这样你就不会在Vista中看到同样的问题了。

#4


0  

Going on from what @jeffamaphone was saying, if it is something to do with modifying the DOM then it might be worth moving your JavaScript from the <head> to just before the closing </body> tag.

从@jeffamaphone的话说,如果这与修改DOM有关,那么在关闭标签之前,将JavaScript从移动到。

I have had issues with IE before and the infamous Operation Aborted error and doing this helped fix that, but I appreciate that YMMV.

我以前和IE有过问题,臭名昭著的操作失败了,这帮助解决了问题,但是我很感激YMMV。

#1


12  

Here you go. It has something to do with your DirectX filter (probably what's doing the fades). Here's the stack, and EAX is NULL. Whatever the code is doing is trying to deref EAX:

给你。它与你的DirectX过滤器有关系(可能是正在做的渐变)。这是堆栈,EAX是空的。无论代码在做什么,都是在试图对EAX进行分析:

CDXTFilterBehavior::_ClearSurface:
6C8E87E1  mov         edi,edi 
6C8E87E3  push        ebp  
6C8E87E4  mov         ebp,esp 
6C8E87E6  push        ecx  
6C8E87E7  mov         eax,dword ptr [ebp+0Ch] 
6C8E87EA  mov         ecx,dword ptr [eax] <--- EAX is NULL

>   dxtrans.dll!CDXTFilterBehavior::_ClearSurface()     
    dxtrans.dll!CDXTFilterBehavior::_DrawUnfilteredElementLayers()  
    dxtrans.dll!CDXTFilterBehavior::_DrawElementWithProceduralSurfaces()    
    dxtrans.dll!CDXTFilterBehavior::_ExecuteFilterChain()   
    dxtrans.dll!CDXTFilterBehavior::Draw()  
    mshtml.dll!CPeerHolder::Draw()  
    mshtml.dll!CLayout::DrawClientLayers()  
    mshtml.dll!CDispContainer::DrawSelf()   
    mshtml.dll!CDispNode::Draw()    
    mshtml.dll!CDispContainer::DrawChildren()   
    mshtml.dll!CDispContainer::DrawSelf()   
    mshtml.dll!CDispNode::Draw()    
    mshtml.dll!CDispContainer::DrawChildren()   
    mshtml.dll!CDispContainer::DrawSelf()   
    mshtml.dll!CDispNode::Draw()    
    mshtml.dll!CDispContainer::DrawChildren()   
    mshtml.dll!CDispContainer::DrawSelf()   
    mshtml.dll!CDispNode::Draw()    
    mshtml.dll!CDispContainer::DrawChildren()   
    mshtml.dll!CDispContainer::DrawSelf()   
    mshtml.dll!CDispNode::Draw()    
    mshtml.dll!CDispContainer::DrawChildren()   
    mshtml.dll!CDispContainer::DrawSelf()   
    mshtml.dll!CDispNode::Draw()    
    mshtml.dll!CDispRoot::DrawEntire()  
    mshtml.dll!CDispRoot::DrawRoot()    
    mshtml.dll!CView::RenderView()  
    mshtml.dll!CDoc::OnPaint()  
    mshtml.dll!CServer::OnWindowMessage()   
    mshtml.dll!CDoc::OnWindowMessage()  
    mshtml.dll!CServer::WndProc()   
    user32.dll!_InternalCallWinProc@20()    
    user32.dll!_UserCallWinProcCheckWow@32()    
    user32.dll!_CallWindowProcAorW@24()     
    user32.dll!_CallWindowProcW@20()    
    user32.dll!_InternalCallWinProc@20()    
    user32.dll!_UserCallWinProcCheckWow@32()    
    user32.dll!_DispatchClientMessage@20()  
    user32.dll!___fnDWORD@4()   
    ntdll.dll!_KiUserCallbackDispatcher@12()    
    user32.dll!_NtUserDispatchMessage@4()   
    user32.dll!_DispatchMessageWorker@8()   
    user32.dll!_DispatchMessageW@4()    
    ieframe.dll!CTabWindow::_TabWindowThreadProc()  
    kernel32.dll!@BaseThreadInitThunk@12()  
    ntdll.dll!___RtlUserThreadStart@8()     
    ntdll.dll!__RtlUserThreadStart@8()  

Perhaps you're removing an element from the DOM while the transform is still operating on it?

也许您正在从DOM中删除一个元素,而转换仍然在运行它?

#2


10  

I can suggest that you have to follow the "Divide and Conquer Strategy".

我可以建议你必须遵循“分而治之”的策略。

Remove all your javascript, and try to load it, if it fail the problem is with the code you have removed. Now add again "half" of the code that you have removed, if it didn't crash then the problems isn't in this half, if it crashes again then it is in the half you have added. Now you have to keep adding "half" of the remaining code when it works, or removing half of the code you have added if it fails. If you keep doing this eventually you will led to a piece of code that you can't divide and if added make IE crash.

删除所有的javascript,并尝试加载它,如果它失败了,问题是您已经删除的代码。现在再加上你已经删除的代码的一半,如果它没有崩溃,那么问题不在这一半,如果它再次崩溃,那么它就在你添加的一半。现在,当它工作时,您必须继续添加剩余代码的“一半”,或者如果它失败了,就删除掉一半的代码。如果你一直这样做,最终你会得到一段你无法分割的代码,如果添加了IE崩溃。

This will not solve your bug but it may give you an idea where the real problem is.

这不会解决你的问题,但它可能会让你知道真正的问题在哪里。

#3


1  

This is an XP specific issue. We have a full team of developers looking into the issue so you will not see the same issue in Vista.

这是一个XP特定的问题。我们有一个完整的开发团队来研究这个问题,这样你就不会在Vista中看到同样的问题了。

#4


0  

Going on from what @jeffamaphone was saying, if it is something to do with modifying the DOM then it might be worth moving your JavaScript from the <head> to just before the closing </body> tag.

从@jeffamaphone的话说,如果这与修改DOM有关,那么在关闭标签之前,将JavaScript从移动到。

I have had issues with IE before and the infamous Operation Aborted error and doing this helped fix that, but I appreciate that YMMV.

我以前和IE有过问题,臭名昭著的操作失败了,这帮助解决了问题,但是我很感激YMMV。