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

时间:2009-04-07 01:10:42

标签: javascript jquery internet-explorer crash

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

我正在使用大量的jQuery来淡化内容。当用户点击几次上述链接之一时,它将在IE中崩溃。

以下是我的网站:Idea Palette

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

有没有人有任何想法?

4 个答案:

答案 0 :(得分:12)

你走了。它与你的DirectX过滤器有关(可能正在进行淡入淡出)。这是堆栈,EAX是NULL。无论代码在做什么,都试图解析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()  

也许你在转换仍在运行的时候从DOM中删除了一个元素?

答案 1 :(得分:10)

我可以建议您必须遵循“分而治之战略”。

删除所有的javascript,并尝试加载它,如果失败则问题在于您删除的代码。现在再添加你已删除的代码的“一半”,如果它没有崩溃那么问题不在这一半,如果它再次崩溃,那么它是你添加的一半。现在,您必须在其工作时继续添加剩余代码的“一半”,或者删除在失败时添加的一半代码。如果你最终继续这样做,你将导致一段代码,你不能分开,如果添加使IE崩溃。

这不会解决您的错误,但它可能会让您了解真正的问题所在。

答案 2 :(得分:1)

这是XP特定问题。我们有一整套开发人员正在调查此问题,因此您不会在Vista中看到相同的问题。

答案 3 :(得分:0)

继续@jeffamaphone所说的,如果它与修改DOM有关,那么可能值得从&lt; head&gt;移动你的JavaScript。在结束之前&lt; / body&gt;标签

我之前遇到过IE和infamous Operation Aborted error的问题,这样做有助于解决这个问题,但我很欣赏YMMV。