Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Größe einer Website (https://www.delphipraxis.net/163138-groesse-einer-website.html)

froschprinz 16. Sep 2011 18:04

Größe einer Website
 
Hallo Zusammen,

das ist mein erster Beitrag, ich bitte also um Nachsicht, wenn ich Fehler machen sollte.

Ich muss für eine Behinderteneinrichtung eine Prog für geistig Behinderte Menschen schreiben.
Um ein Bild der gesamten Seite zu speichern benötige ich eine Möglichkeit die tatsächliche Größe (Pixel nicht Byte) einer Website zu bestimmen.

Die Funktion

Height :=webbrowser1.OleObject.Document.Body.ScrollHeight ;

liefert bei manchen Webseiten einen richtigen Wert - bei anderen z.B. Google kommt nichts Vernünftiges.

Ist es möglich die Scrollbars des Webbrowsers abzufragen (z.B. scrollbar_vertical.max)
Woher weiß der Webbrowser wie groß seine Seite ist??

Für einen Tipp wäre ich sehr dankbar.

Ulli

Darlo 16. Sep 2011 18:07

AW: Größe einer Website
 
Hi,

Web ist zwar kaum mein Bereich, aber ich glaube du wirst da ziemliche Probleme haben. Meines Wissens ist es so, dass wenn man mit AJAX arbeitet der nicht sichtbare Bereich (trotz Scrollbars) noch nicht dargestellt ist. Und wenn ich mich nicht irre ist der nicht sichtbare Inhalt ebenfalls noch garnicht vorhanden.

Gruß

Darlo

P.S.: Sollte ich mich irren bitte ich um Entschuldigung...

Union 16. Sep 2011 18:40

AW: Größe einer Website
 
Es geht ja nicht um Web, sondern um ActiveX. Da gibt es ein Beispiel um einen Screenshot von einer kompletten Seite zu machen. Und wenn das geht hat man ja auch die physikalische Größe

froschprinz 16. Sep 2011 18:53

AW: Größe einer Website
 
Hallo,

Danke für die schnellen Antworten.

leider macht die beschriebene Funktion jedoch nur einen screenshot von dem momentan angezeigten Bereich (Größe des Webbrowsers) und nicht von der kompletten Website.

Wenn ich den Webbrowser sehr groß zeichne (z.B. 3000 X 3000 Pixel) dann wird doch die ganze Seite geladen. Der screenshot klappt dann schon, jedoch ist dann die jpg auch 3000 X 3000 Pixel groß und der größte Bereich leer.

Es muss doch irgendeine Möglichkeit geben, die richtige Größe zu ermitteln???

stahli 16. Sep 2011 19:07

AW: Größe einer Website
 
Ich habe das einmal für einen Formularinhalt gemacht, indem ich die Scrollboxen Schritt für Schritt verschoben habe und die einzelnen Screens dann zu einem großen Bild zusammengesetzt habe (Quelltext habe ich nicht mehr).

Für den Webbrowser kann ich Dir leider nicht helfen.


PS: Falls es auch ein externes Tool sein kann (der Hintergrund Deines Anliegens ist ja nicht genau erläutert): SnagIt kann so etwas.

froschprinz 16. Sep 2011 19:36

AW: Größe einer Website
 
Ich muss das ohne anderes Tool schaffen.
Gibt es keine Möglichkeit die Scrollbars des Webbrowsers abzufragen?
Oder den Webbrowser automatisch auf die Größe der Website zu vergrößern (dann hätte ich auch schon gewonnen).
Nochmal die selbe Frage: Wie erkennt der Webbrowser, wo die Grenzen der Scrollbars sind? Wenn der das erkennen kann, dann muss ich das doch auch können?!?

blackfin 16. Sep 2011 19:52

AW: Größe einer Website
 
Zitat:

Wie erkennt der Webbrowser, wo die Grenzen der Scrollbars sind?
Der Browser parst alle HTML / CSS-Scripte (bzw. das, was er über den Request bekommt), rendert alle enthaltenden Elemente unter Berücksichtigung der HTML-Attribute, CSS-Klassen und Styles mit seiner Render-Engine und hat dann am Schluss die gerenderte Breite und Höhe aller Elemente zusammen, so einfach ist das. Die Scrollbars werden dann anhand der aktuellen Monitor- / Browserfenster-Grösse und der gerenderten Seitengrösse entsprechend gesetzt.
Wenn du das allerdings "nachbauen" willst, musst du dir eine komplette HTML-Rendering-Engine bauen, die genauso funcktioniert wie die des Target-Browsers, was so gut wie unmöglich ist, zumindest als Einzelperson :-)

Man kann allerdings moderne Browser von aussen auch oft steuern und abfragen. Wenn du einen bestimmten Browser als Ziel hast, würde ich mal nach einer API suchen, mit der man den Browser von aussen steuern / abfragen kann und die dann in dein Programm basteln.

Ansonsten könntest du evtl. noch von aussen z.b. über Plugins wie GreaseMonkey eigenen clientseitigen JS-Code einschleifen und dadurch die gerenderten Grössen abfragen.

Darlo 16. Sep 2011 20:08

AW: Größe einer Website
 
Vielleicht hilft Dir das weiter:

http://www.cryer.co.uk/brian/delphi/..._oleobject.htm
overflowX und overflowY

oder das:
http://www.delphipraxis.net/110307-w...-sichtbar.html

froschprinz 16. Sep 2011 20:42

AW: Größe einer Website
 
Leider hift das auch nicht, da diese Routine wieder auf

" WB.OleObject.Document.body.ScrollHeight " setzt.
Dies funktioniert nur, wenn die Seite keine Frames enthält.

Ich habe auch nicht die Möglichkeit ein Plug In zu installieren, da mein Prog bereits auf über 50 Rechnern läuft. Ich kann mein Prog verändern und deployen, habe aber keine Möglichkeit auf den anderen Rechner etwas zu installieren.
Ich verwende den TWebbrowser von Delphi 7, auf den Rechnern ist der MS Internetexplorer (Versionen 6-9) installiert.
Meine bisherige Lösung war, den Webbrowser auf besagte 3000 X 3000 Pixel zu vergrößern, Bild schießen und wider auf originalgröße zurücksetzen. Dabei "fotogaphiere" ich aber sehr viel weißes Nichts und wenig Website.
Bei Seiten die mittelzentriert sind, fängt dann meine Website (auf dem jpg) nicht einmal oben links an.
Also keine schöne Lösung.

stahli 16. Sep 2011 20:55

AW: Größe einer Website
 
Wenn es gar keine andere Möglichkeit gibt, kannst Du von dem Bitmap ggf. die Ränder anschneiden.
Sofern der Hintergrund weiß ist sollte das machbar sein.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:13 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz