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

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

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

这是我的网站: Idea Palette

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

有没有人有任何想法?

干得好。 它与你的DirectXfilter有关(可能正在做什么淡化)。 这是堆栈,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中删除一个元素?

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

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

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

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

继续@jeffamaphone的说法,如果它与修改DOM有关,那么将JavaScript从移动到关闭标记之前可能是值得的。

我以前遇到过IE的问题和臭名昭着的Operation Aborted错误并且这样做有助于解决这个问题,但我很欣赏YMMV。

Interesting Posts