Почему мой сайт падает в IE? - PullRequest
2 голосов
/ 07 апреля 2009

Мой сайт отлично работает в Firefox, но в IE он падает.

Я использую много jQuery, чтобы добавить контент. Когда пользователь нажимает на одну из вышеуказанных ссылок несколько раз, в IE происходит сбой.

Вот мой сайт: Палитра идей

Я понятия не имею, почему сайт падает в IE. Я даже не знаю, где начать отлаживать мою проблему. У меня нет Visual Studio на моем компьютере, но на компьютере моих друзей Visual Studio читает сообщение «Произошло необработанное исключение win32 в iexplore.exe [####]»

У кого-нибудь есть идеи?

Ответы [ 4 ]

12 голосов
/ 07 апреля 2009

Вот, пожалуйста. Это как-то связано с вашим фильтром 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, пока преобразование все еще работает на нем?

10 голосов
/ 07 апреля 2009

Могу предложить вам следовать «Стратегии« Разделяй и властвуй »».

Удалите весь свой javascript и попробуйте загрузить его, если он потерпит неудачу, проблема с кодом, который вы удалили. Теперь добавьте снова «половину» кода, который вы удалили, если он не потерпел крах, то проблемы не в этой половине, если он снова падает, то в той половине, которую вы добавили. Теперь вы должны продолжать добавлять «половину» оставшегося кода, когда он работает, или удалять половину кода, который вы добавили, в случае сбоя. Если вы продолжите делать это в конечном итоге, вы получите код, который вы не сможете разделить, и если он будет добавлен, то IE вылетит.

Это не решит вашу ошибку, но может дать вам представление о реальной проблеме.

1 голос
/ 09 октября 2009

Это специфическая проблема для XP. У нас есть полная команда разработчиков, которые занимаются этой проблемой, поэтому вы не увидите такой же проблемы в Vista.

0 голосов
/ 07 апреля 2009

Если исходить из того, что говорил @jeffamaphone, то если что-то связано с модификацией DOM, то, возможно, стоит переместить ваш JavaScript с непосредственно перед закрывающим тегом .

У меня раньше были проблемы с IE и печально известной ошибкой Operation Aborted , и это помогло исправить это, но я ценю, что YMMV.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...