Laden...

Browsercontrol zeigt kein DocumentText

Erstellt von firefighter99 vor 16 Jahren Letzter Beitrag vor 16 Jahren 1.364 Views
F
firefighter99 Themenstarter:in
10 Beiträge seit 2004
vor 16 Jahren
Browsercontrol zeigt kein DocumentText

Hallo community,

mich beschäftigt zur Zeit ein sehr komisches Problem mit dem Browser Control.

Zur Info: Ich habe zum Spass eine Art eigenen Browser schreiben wollen, der als Grundlage das Browsercontrol von .NET 2.0 nutzt. Zur Validierung einiger Funktionen lasse ich mir auf dem zweigeteilten Formular noch eine Textbox mitlaufen, die den Quellcode à browser.DocumentText ausgibt.

Dies funktioniert auch bei 98% aller Internetseiten. Es gibt aber auch Seiten wie studivz.net (erst nach dem Einloggen!) wo in DocumentText nur eine FileNotFound (0x80070002) Exception drin steht. Bei meiner Ursachenforschung erkannte ich, dass auch der IE den Quelltext nicht anzeigen konnte (IE6 / IE7 auf meineren Rechnern unter XP/Vista getestet). Es scheint sich also um ein IE-Problem zu handeln, komme hier aber nicht weiter, da ich den HTML-Quellcode schon gern für Syntaxhighlighting etc. lesen müsste.

Hat jemand eine Idee wie man diesen Fehler beheben kann bzw. ist es bereits anderen aufgefallen?

Danke,
ff X(

49.485 Beiträge seit 2005
vor 16 Jahren

Hallo firefighter99,

Bei meiner Ursachenforschung erkannte ich, dass auch der IE den Quelltext nicht anzeigen konnte

dann wirst du auch mit dem .NET-Control keine Chance haben.

Ich würde sogar eine Absicht dahinter vermuten. Du kannst ja mal mit Firefox schauen, ob du die Ursachen erkennst (wobei ich die Chancen gering einschätze, dass man daraus eine Lösung ableiten kann).

herbivore

F
firefighter99 Themenstarter:in
10 Beiträge seit 2004
vor 16 Jahren

Mit firefox geht es ohne Probleme. Eine Absicht? Von wem? Microsoft?

Na etwas Codeanalyse ist mir eines aufgefallen: Ajax. Kann es sein, dass der IE damit Probleme hat und das DocumentCompleted-Event zur falschen Zeit wirft? Übrigens ist es meines Wissens nicht möglich als Homepagebetreiber den HTML-Code zu verstecken.

915 Beiträge seit 2006
vor 16 Jahren

Hrm, ich kann mir vorstellen das es im IE im Zusammenhang mit DOM-Code zu Problemen kommen kann. Einige Befehle kennt der IE nicht. Fürchte da wirst etwas nachgooglen müssen.

Wie vernichtet stand Andreas unter den flammenden Augen seiner Kunden.
Ihm war's, als stünde des Schicksals dunkle Wetterwolke über seinem Haupte X(

49.485 Beiträge seit 2005
vor 16 Jahren

Hallo firefighter99,

Eine Absicht? Von wem? Microsoft?

nein, wenn dann vom Seitenbeitreiber bzw. dessen Web-Programmierer. War aber auch nur eine Vermutung. Da du sagst, dass Ajax verwendet wird, kann es auch ein unbeabsichtigter Nebeneffekt sein.

Ajax. Kann es sein, dass der IE damit Probleme hat und das DocumentCompleted-Event zur falschen Zeit wirft?

Ja und nein. DocumentCompleted wird in gewissem Sinne schon im richtigen Moment gefeuert, nämlich, wenn der Code der Seite selbst vollständig geladen ist. Aber der Sinn von ja Ajax ist es ja nun gerade, bestimmte Informationen dynamisch nachzuladen. Das Nachladen kann ja mit beliebigem Abstand zum Laden der eigentlichen Seite erfolgen, also direkt danach oder aber auch erst nach einem Button-Click. Deshalb kann und wird DocumentCompleted darauf keine Rücksicht nehmen.

Übrigens ist es meines Wissens nicht möglich als Homepagebetreiber den HTML-Code zu verstecken.

Ja und nein. Im konkreten Fall klappt es ja offensichtlich zumindest im IE. 🙂 Aber natürlich muss der Betreiber immer den Quellecode zum Client übermitteln und insofern kommt man da auch immer irgendwie (meistens sehr einfach) heran.

herbivore

F
firefighter99 Themenstarter:in
10 Beiträge seit 2004
vor 16 Jahren

Danke schonmal für die Antworten.

@Andreas.May: Von welchem Problemen sprichst Du? Ich bin nun seit ca. 2 Wochen am googlen und konnte mein Problem teilweise wiederfinden. Nur die Lösung fehlt. Selbst bei MS konnte ich via Google dies als vermeidlichen Bug finden, der aber angeblich nicht reproduziert werden konnte.

@herbivore: Korrekt. Wenn ich aber mit dem Browser nicht interagiere und erstmal etwas warte und trotzdem im IE/DocumentText keine Daten bekomme, dann ist doch irgendwas faul.

Übrigends habe ich durch Zufall einen Workaround gefunden. Befindet man sich auf einer Seite wo eine Exception fliegt, dann ändere die URL auf XYZ z.B. about:blank und gehe danach sofort wieder zurück auf die gewollte Seite via browser.GoBack() und vola - man hat den kompletten HTML-Code. Ich vermute der IE holt sich die Info dann nur aus dem Cache oder so!? Dieses Verfahren möchte ich aber nicht als Lösung lobpreisen, da man jede Seite doppelt aufruft und die Interaktion mit dem Nutzer natürlich negativ beeinflußt. Allerdings könnte es der eigentlichen Problemfindung helfen???

Danke!

//EDIT: Ich glaube den Cache kann ich streichen. Habe gerade im IE mal das cachen der Seiten deaktiviert und der workaround griff trotzdem - k.A. warum 🤔

915 Beiträge seit 2006
vor 16 Jahren

Hrm, eigentlich das was herbivore Schrieb, z.B. wenn DOM Code verwendest für den Aufbau einer Tabelle "table.appendChild(newRow);" oder "setAttribute" versucht IE diesen nachzuladen kennt aber den Befehl nicht. Also erscheint entweder nen Fehler oder eben gar nichts.

Ich kann mir daher nur vorstellen das es evtl. daher kein Quellcode angezeigt werden kann. Genau weis ich das nicht, bin sehr lange nicht mehr in der Web Programmierung tätig gewesen. Hatte damals nur mal versucht mit Ajax und PHP was zu machen. Schau(t)e daher für sowas meistens ins SELFHTML Forum rein.

Die Frage ist ob diese Seiten dann wirklich beachten musst.

Wie vernichtet stand Andreas unter den flammenden Augen seiner Kunden.
Ihm war's, als stünde des Schicksals dunkle Wetterwolke über seinem Haupte X(