我的网站在 Firefox 中运行良好,但在 IE 中崩溃。
我正在使用大量的 jQuery 来淡入内容。当用户多次点击上述链接之一时,它会在 IE 中崩溃。
这是我的网站:创意调色板
我完全不知道为什么该网站在 IE 中崩溃。我什至不知道从哪里开始调试我的问题。我的计算机上没有 Visual Studio,但在我朋友的计算机上,Visual Studio 读取消息“iexplore.exe [####] 中发生未处理的 win32 异常”
有没有人有任何想法?
我的网站在 Firefox 中运行良好,但在 IE 中崩溃。
我正在使用大量的 jQuery 来淡入内容。当用户多次点击上述链接之一时,它会在 IE 中崩溃。
这是我的网站:创意调色板
我完全不知道为什么该网站在 IE 中崩溃。我什至不知道从哪里开始调试我的问题。我的计算机上没有 Visual Studio,但在我朋友的计算机上,Visual Studio 读取消息“iexplore.exe [####] 中发生未处理的 win32 异常”
有没有人有任何想法?
干得好。它与您的 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 中删除一个元素,而转换仍在对其进行操作?
我可以建议你必须遵循“分而治之的策略”。
删除所有 javascript,并尝试加载它,如果失败,则问题出在您已删除的代码上。现在再次添加您已删除的代码的“一半”,如果它没有崩溃,那么问题不在这一半,如果它再次崩溃,那么它在你添加的那一半。现在你必须在它工作时继续添加剩余代码的“一半”,或者如果它失败则删除你添加的一半代码。如果你最终继续这样做,你将导致一段你不能分割的代码,如果添加的话会使 IE 崩溃。
这不会解决你的错误,但它可能会让你知道真正的问题在哪里。
这是特定于 XP 的问题。我们有一个完整的开发团队正在调查这个问题,因此您不会在 Vista 中看到同样的问题。
继续@jeffamaphone 所说的话,如果它与修改 DOM 有关,那么可能值得将您的 JavaScript 从 <head> 移动到结束 </body> 标记之前。
我之前遇到过 IE 问题和臭名昭著的 Operation Aborted 错误,这样做有助于解决这个问题,但我很欣赏 YMMV。