请查看 http://www.idea-palette.com
我有多个页面正在使用顶部导航淡入淡出。当用户点击任何上述按钮以使用jQuery Cycle Plugin淡入包含幻灯片放映的另一个页面时,IE7崩溃。
当我注释掉控制幻灯片放映时间的jQuery时,IE7不再崩溃了。 您可以在此处看到: http://www.idea-palette.com/IEindex.php
我猜IE7不喜欢它,当它消失了一些内容,其中包含一些已经在衰落过程中的其他内容。我猜两个人一起以某种方式超载IE7,所以它崩溃了。
在我发现jQuery Cycle Plugin导致页面崩溃之前,我问为什么会发生这种情况(Why does my website crash in IE?)和stackoverflow上的jeffamaphone在查看我的网站时发现了这个信息:
'它与你的DirectX过滤器有关(可能是在做什么)。这是堆栈,EAX是NULL。无论代码在做什么,都试图解析EAX:
CDXTFilterBehavior :: _ ClearSurface: 6C8E87E1 mov edi,edi 6C8E87E3推ebp
6C8E87E4 mov ebp,尤其是 6C8E87E6推ecx
6C8E87E7 mov eax,dword ptr [ebp + 0Ch] 6C8E87EA mov ecx,dword ptr [eax]< --- EAX为NULLdxtrans.dll!CDXTFilterBehavior :: _ ClearSurface()
dxtrans.dll!CDXTFilterBehavior :: _ DrawUnfilteredElementLayers()
dxtrans.dll!CDXTFilterBehavior :: _ DrawElementWithProceduralSurfaces()
dxtrans.dll!CDXTFilterBehavior :: _ ExecuteFilterChain()
dxtrans.dll!CDXTFilterBehavior ::抽奖()
Mshtml.dll的!CPeerHolder ::抽奖()
Mshtml.dll的!CLayout :: DrawClientLayers()
Mshtml.dll的!CDispContainer :: DrawSelf()
Mshtml.dll的!CDispNode ::抽奖()
Mshtml.dll的!CDispContainer :: DrawChildren()
Mshtml.dll的!CDispContainer :: DrawSelf()
Mshtml.dll的!CDispNode ::抽奖()
Mshtml.dll的!CDispContainer :: DrawChildren()
Mshtml.dll的!CDispContainer :: DrawSelf()
Mshtml.dll的!CDispNode ::抽奖()
Mshtml.dll的!CDispContainer :: DrawChildren()
Mshtml.dll的!CDispContainer :: DrawSelf()
Mshtml.dll的!CDispNode ::抽奖()
Mshtml.dll的!CDispContainer :: DrawChildren()
Mshtml.dll的!CDispContainer :: DrawSelf()
Mshtml.dll的!CDispNode ::抽奖()
Mshtml.dll的!CDispContainer :: DrawChildren()
Mshtml.dll的!CDispContainer :: DrawSelf()
Mshtml.dll的!CDispNode ::抽奖()
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中移除一个元素,而变换仍然在它上面运行?'
有人知道如何解决这个问题吗?
答案 0 :(得分:2)
正如我在上次发布此评论时提到的那样,如果你可以远程崩溃IE,你应该contact Microsoft。此漏洞至少可以导致拒绝服务攻击,并且可能导致远程代码执行或远程root(根据需要使网页崩溃的错误很可能被利用以允许攻击者运行不受信任的代码在你的机器上)。虽然这里的人们可能能够帮助您解决问题,但微软应该得到通知,以便他们能够解决潜在的错误。
编辑:两者都试图解决您自己的问题,并且为了报告错误,您应该尝试将问题减少到最小的测试用例。将所有内容删除到足以再现错误的最小元素集。然后对代码执行相同操作。你应该努力得到一个只有一两个图像的测试用例,以及触发问题的交叉渐变,没有别的东西存在。
然后,是的,报告错误,向他们发送一个指向最小测试用例的链接(如果可以的话,将其包含在错误报告中)。提到它是一个远程拒绝服务漏洞,并且您不知道它是否会导致远程代码执行。
正如我所提到的,将其缩减为最小的示例应该能够帮助您解决您的错误。至少,你更有可能在一个最小的代码示例上得到帮助,而不是整个网站上有很多东西,没有人真正感觉像是在挖掘。