AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Größe einer Website

Ein Thema von froschprinz · begonnen am 16. Sep 2011 · letzter Beitrag vom 17. Sep 2011
Antwort Antwort
Seite 1 von 3  1 23      
froschprinz

Registriert seit: 24. Dez 2010
Ort: Graben, Bayern
34 Beiträge
 
Delphi 7 Architect
 
#1

Größe einer Website

  Alt 16. Sep 2011, 19:04
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
Ulli
  Mit Zitat antworten Zitat
Darlo

Registriert seit: 28. Jul 2008
Ort: München
1.196 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#2

AW: Größe einer Website

  Alt 16. Sep 2011, 19:07
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...
Philip
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#3

AW: Größe einer Website

  Alt 16. Sep 2011, 19:40
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
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
froschprinz

Registriert seit: 24. Dez 2010
Ort: Graben, Bayern
34 Beiträge
 
Delphi 7 Architect
 
#4

AW: Größe einer Website

  Alt 16. Sep 2011, 19:53
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???
Ulli
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Größe einer Website

  Alt 16. Sep 2011, 20:07
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.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
froschprinz

Registriert seit: 24. Dez 2010
Ort: Graben, Bayern
34 Beiträge
 
Delphi 7 Architect
 
#6

AW: Größe einer Website

  Alt 16. Sep 2011, 20:36
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?!?
Ulli
  Mit Zitat antworten Zitat
blackfin
(Gast)

n/a Beiträge
 
#7

AW: Größe einer Website

  Alt 16. Sep 2011, 20:52
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.

Geändert von blackfin (16. Sep 2011 um 21:12 Uhr)
  Mit Zitat antworten Zitat
Darlo

Registriert seit: 28. Jul 2008
Ort: München
1.196 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#8

AW: Größe einer Website

  Alt 16. Sep 2011, 21:08
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
Philip
  Mit Zitat antworten Zitat
froschprinz

Registriert seit: 24. Dez 2010
Ort: Graben, Bayern
34 Beiträge
 
Delphi 7 Architect
 
#9

AW: Größe einer Website

  Alt 16. Sep 2011, 21:42
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.
Ulli
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: Größe einer Website

  Alt 16. Sep 2011, 21:55
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.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:33 Uhr.
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