2009-04-07 21 views
2

Meine Seite funktioniert gut in Firefox, aber es stürzt im IE ab.Warum stürzt meine Website in IE ab?

Ich verwende eine Menge jQuery, um den Inhalt einzublenden. Wenn der Benutzer einige Male auf einen der obigen Links klickt, stürzt er im IE ab.

Hier ist meine Website: Idea Palette

Ich habe absolut keine Ahnung, warum die Website in IE abstürzt. Ich weiß nicht einmal, wo ich anfangen soll, mein Problem zu debuggen. Ich habe Visual Studio nicht auf meinem Computer, aber auf meinem Computer Freunde liest Visual Studio eine Meldung "Eine unbehandelte win32-Ausnahme aufgetreten in iexplore.exe [####]"

Hat jemand irgendwelche Ideen?

+1

Ich habe noch nichts gesehen. aber ich würde definitiv empfehlen, dass Sie Ihren whitespace bereinigen, indem Sie Ihre Extratabletten loswerden. Ich würde auch in Betracht ziehen, jeden Code zu duplizieren, der wiederholt dupliziert wird, aber das ist eine andere Frage. – bendewey

+0

Wenn Sie IE von Ihrer Website abstürzen können, sollten Sie das Problem an Microsoft melden. Jeder Fehler, der es einem Angreifer ermöglichen kann, ein Programm auf dem Computer eines Opfers von einem Remote-Server abzustürzen, ist ein potenzieller Sicherheits-Exploit (und es ermöglicht zumindest einen Denial-of-Service). –

Antwort

12

Hier gehen Sie. Es hat etwas mit Ihrem DirectX-Filter zu tun (wahrscheinlich, was die Fades macht). Hier ist der Stapel und EAX ist NULL. Was auch immer der Code tut versucht EAX deref:

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() 
    [email protected]()  
    [email protected]()  
    [email protected]()  
    [email protected]()  
    [email protected]()  
    [email protected]()  
    [email protected]() 
    [email protected]() 
    [email protected]()  
    [email protected]() 
    [email protected]() 
    [email protected]()  
    ieframe.dll!CTabWindow::_TabWindowThreadProc() 
    [email protected]@12() 
    [email protected]()  
    [email protected]() 

Vielleicht sind Sie ein Element aus dem DOM entfernt wird, während die Transformation noch daran arbeitet?

+2

Woher haben Sie den obigen Code? Wie kann ich den EAX reparieren? Ich habe keine Ahnung, was ein EAX ist, übrigens. – zeckdude

+2

Ich lief iexplore.exe mit Visual Studio angefügten und geladenen öffentlichen Symbolen. EAX ist ein CPU-Register. Sie können es nicht direkt reparieren ... Sie müssen herausfinden, wie Sie es umgehen können. Die Tatsache, dass es null ist, ist dein einziger Hinweis - egal welches Objekt du dachtest, dass du gehandelt hast, ist nicht da. –

+0

Aufteilung und Conquer, die unten vorgeschlagen werden, ist ein guter Ansatz. –

10

Ich kann vorschlagen, dass Sie der "Strategie teilen und erobern" folgen müssen.

Entfernen Sie alle Ihre Javascript, und versuchen Sie es zu laden, wenn es fehlschlägt, ist das Problem mit dem Code, den Sie entfernt haben. Jetzt füge noch einmal "die Hälfte" des Codes hinzu, den du entfernt hast, wenn es nicht stürzte dann ist das Problem nicht in dieser Hälfte, wenn es wieder abstürzt dann ist es in der Hälfte die du hinzugefügt hast. Jetzt müssen Sie die Hälfte des verbleibenden Codes hinzufügen, wenn es funktioniert, oder die Hälfte des Codes, den Sie hinzugefügt haben, entfernen, falls dies fehlschlägt. Wenn Sie dies weiterhin tun, werden Sie zu einem Code führen, den Sie nicht teilen können.

Dies wird Ihren Fehler nicht lösen, aber es kann Ihnen eine Idee geben, wo das eigentliche Problem ist.

0

Gehen auf dem, was @jeffamaphone sagte, wenn es etwas mit Veränderung der DOM zu tun ist, dann könnte es sie JavaScript vom < Kopf wert sein > > Tag kurz vor dem Schließen </Körper bewegt.

Ich hatte Probleme mit IE vor und die infamous Operation Aborted error und dabei geholfen, das zu beheben, aber ich weiß, dass YMMV.

1

Dies ist ein XP-spezifisches Problem. Wir haben ein ganzes Team von Entwicklern, die sich mit dem Problem befassen, damit Sie das gleiche Problem in Vista nicht sehen.

+1

Wer sind wir? Arbeitest du für Microsoft? – zeckdude

+2

schlechter Entwickler :( – Nachiket

Verwandte Themen