


Berechnen Sie die Position eines Elements auf einer Webseite in JavaScript_Javascript-Tipps
Aufgrund der Anforderungen des Projekts sind beim Testen Screenshots von Webseitenelementen erforderlich, um sicherzustellen, dass sie normal aussehen. BevorIch habe einen Artikel geschrieben, in dem eine Methode vorgestellt wird, verwenden Sie zunächst WebDriver, um einen Vollbild-Screenshot zu erstellen, und schneiden Sie dann den Screenshot entsprechend der Position des Zielelements (DOM-Element) zu, wobei wir den benötigten Standort beibehalten.
Dieser Code hat gut funktioniert, bis ich etwas herausgefunden habe: iframe. Der Inhalt eines Iframes (normaler Frame ist derselbe, aber Frame ist jetzt weniger verbreitet, hier wird nur Iframe als Beispiel verwendet) wird als unabhängige Webseite betrachtet, und sogar das Window-Objekt ist von seiner übergeordneten Webseite getrennt. Die WebElement.getLocation()-Methode in WebDriver kann nur die Positionsbeziehung zwischen diesem WebElement und dem Fenster zurückgeben, in dem es sich befindet. Es gibt kein Problem mit der Implementierung, aber der Vollbild-Screenshot enthält nicht nur den Inhalt des Iframes, sondern auch kann auch den Inhalt der übergeordneten Seite enthalten. Beim Zuschneiden müssen Sie die Position des Zielelements im Screenshot kennen. Die Frage ist also: Welches Unternehmen verfügt über die beste Baggertechnologie? Wie berechnet man die Position eines Elements relativ zum Screenshot?
Dieses Problem muss in einer separaten Kategorie behandelt werden. Der Grund dafür ist: Das Verhalten von Screenshots in Chrome und Firefox ist unterschiedlich. Der Screenshot von Chrome ist der aktuell sichtbare (Ansichtsfenster) Inhalt der Webseite. Wenn die tatsächliche Größe der Webseite beispielsweise die Größe des Chrome-Fensters überschreitet, unterscheidet sich der im Fenster angezeigte Inhalt je nach Position der Bildlaufleiste den angezeigten Inhalt. Wir müssen also die Position des Zielelements relativ zum aktuell sichtbaren Inhalt berechnen. Firefox verwendet eine Methode, die den Inhalt der gesamten Webseite erfassen kann, unabhängig von der aktuellen Fenstergröße. Für Firefox müssen wir also die absolute Position des Elements berechnen (Absolute Position).
Um die Position eines Elements zu ermitteln, müssen Sie eine Methode verwenden: Element.getBoundingClientRect(). Diese Methode gibt die Position dieses Elements relativ zum aktuell sichtbaren Inhalt des Fensters zurück, in dem es sich befindet, dargestellt durch vier Werte: oben, links, rechts und unten. Wir kümmern uns nur um oben und links. Die Ausschnittsgröße können wir ohne Berechnung aus der Länge und Breite des Elements selbst ermitteln. Um die Position des Zielelements relativ zum Fenster der obersten Ebene zu berechnen, müssen wir nur den oberen und linken Teil des übergeordneten Fensters der Reihe nach hinzufügen. Der Code lautet wie folgt:
function calcViewportLocation(element) { var currentWindow = window; var rect = element.getBoundingClientRect(); // 元素的位置 var top = rect.top; var left = rect.left; while (currentWindow.frameElement != null) { // 处理父级 Window element = currentWindow.frameElement; currentWindow = currentWindow.parent; rect = element.getBoundingClientRect(); if (rect.top > 0) { top += rect.top; } if (rect.left > 0) { left += rect.left; } } return [Math.round(top), Math.round(left)]; }
Der obige Code funktioniert für Chrome, aber in Firefox müssen wir auch die absolute Position des Elements berechnen. Hier wird Window.pageXOffset benötigt. pageXOffset oder scrollX stellt die Bildlaufposition der horizontalen Bildlaufleiste des aktuellen Fensters dar. Fügen Sie diesen Wert oben links hinzu, um die horizontale absolute Position des Zielelements zu erhalten. Natürlich kann iframe auch speziell behandelt werden:
function calcAbsolutLocation(element) { var top = 0; var left = 0; var currentWindow = window; while (element != null) { rect = element.getBoundingClientRect(); var pageYOffset = currentWindow.pageYOffset; var pageXOffset = currentWindow.pageXOffset; if (typeof pageYOffset === 'undefined') { // IE8 currentDocument = currentWindow.document; var bodyElement = (currentDocument.documentElement || currentDocument.body.parentNode || currentDocument.body); pageYOffset = bodyElement.scrollTop; pageXOffset = bodyElement.scrollLeft; } top += rect.top + pageYOffset; left += rect.left + pageXOffset; element = currentWindow.frameElement; currentWindow = currentWindow.parent; if (element != null) { style = window.getComputedStyle(element); top += parseInt(style.borderTopWidth, 10); left += parseInt(style.borderLeftWidth, 10); } } return [Math.round(top), Math.round(left)]; }
Da IE8 pageXOffset und scrollX nicht unterstützt, ist in IE8 eine spezielle Verarbeitung erforderlich, nämlich der im Code mit „IE8“ gekennzeichnete Teil. Indem Sie diese beiden Teile des Javascript-Codes im vorherigen Artikel durch WebElement.getLocation() ersetzen, können Sie einen Screenshot eines bestimmten Elements in einem Iframe erstellen.

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Die Umgebungsvariablenfunktion ist ein wesentliches Werkzeug zum Ausführen des Konfigurationsprogramms im System, aber im neuesten Win11-System wissen immer noch viele Benutzer nicht, wie sie eingerichtet werden sollen. Hier finden Sie eine detaillierte Einführung in den Speicherort Öffnen Sie die Umgebungsvariable win11 und lernen Sie, wie man sie bedient. Wo sind die Win11-Umgebungsvariablen: 1. Geben Sie zunächst „win+R“ ein, um das Ausführungsfeld zu öffnen. 2. Geben Sie dann den Befehl ein: controlsystem. 3. Wählen Sie in der sich öffnenden Systeminformationsoberfläche im linken Menü „Erweiterte Systemeinstellungen“ aus. 4. Wählen Sie dann unten im sich öffnenden Fenster „Systemeigenschaften“ die Option „Umgebungsvariablen“. 5. Abschließend können Sie in den geöffneten Umgebungsvariablen relevante Einstellungen entsprechend Ihren Bedürfnissen vornehmen.

Jedes Windows-System verfügt über einen Startpfad. Wenn Sie ihm Dateien oder Software hinzufügen, wird dieser beim Booten geöffnet. Viele Freunde wissen jedoch nicht, wo sich der Win11-Startpfad befindet. Tatsächlich müssen wir nur den entsprechenden Ordner auf dem Laufwerk C eingeben. Win11-Startpfad: 1. Doppelklicken Sie, um „Dieser PC“ zu öffnen. 2. Fügen Sie den Pfad „C:\ProgramData\Microsoft\Windows\StartMenu\Programs\Startup“ direkt in das Pfadfeld ein. 3. Hier ist der Win11-Startpfad. Wenn wir die Datei nach dem Booten öffnen möchten, können wir die Datei einfügen. 4. Wenn Sie über diesen Pfad nicht zugreifen können, ist er möglicherweise ausgeblendet.

Die allgemeine Matrixmultiplikation (GEMM) ist ein wesentlicher Bestandteil vieler Anwendungen und Algorithmen und außerdem einer der wichtigen Indikatoren zur Bewertung der Leistung der Computerhardware. Eingehende Forschung und Optimierung der Implementierung von GEMM können uns helfen, Hochleistungsrechnen und die Beziehung zwischen Software- und Hardwaresystemen besser zu verstehen. In der Informatik kann eine effektive Optimierung von GEMM die Rechengeschwindigkeit erhöhen und Ressourcen einsparen, was für die Verbesserung der Gesamtleistung eines Computersystems von entscheidender Bedeutung ist. Ein tiefgreifendes Verständnis des Funktionsprinzips und der Optimierungsmethode von GEMM wird uns helfen, das Potenzial moderner Computerhardware besser zu nutzen und effizientere Lösungen für verschiedene komplexe Computeraufgaben bereitzustellen. Durch Optimierung der Leistung von GEMM

WORD ist ein leistungsstarkes Textverarbeitungsprogramm, mit dem wir verschiedene Texte in Excel bearbeiten können. Wir beherrschen die Berechnungsmethoden der Addition, Subtraktion und Multiplikatoren. Wie subtrahiere ich den Multiplikator? Kann ich ihn nur mit einem Taschenrechner berechnen? Die Antwort ist natürlich nein, WORD kann das auch. Heute werde ich Ihnen beibringen, wie Sie mit Formeln grundlegende Operationen wie Addition, Subtraktion, Multiplikation und Division in Tabellen in Word-Dokumenten berechnen. Lassen Sie mich heute im Detail zeigen, wie man Addition, Subtraktion, Multiplikation und Division in einem WORD-Dokument berechnet. Schritt 1: Öffnen Sie ein WORD, klicken Sie in der Symbolleiste unter [Einfügen] auf [Tabelle] und fügen Sie eine Tabelle in das Dropdown-Menü ein.

Es gibt insgesamt 20 Origami-Vögel im Stardome Railway Croaker Movie Park. Viele Spieler wissen nicht, wo sich die Origami-Vögel im Crocker Movie Park befinden, um allen die Suche zu erleichtern. und schauen Sie sich diese neueste Zusammenfassung der Standorte der Origami-Vögel im Croaker Film and Television Park an, um spezifische Inhalte zu erhalten. Leitfaden zur Honky Dome Railway Star Dome Railway Crocker Film Park Origami Bird Location 1, Crocker Film Park 1. Etage 2, Crocker Film Park 2. Etage

Um mehr über den Speicherort der von pip installierten Pakete zu erfahren, benötigen Sie spezifische Codebeispiele. Pip ist ein häufig verwendetes Paketverwaltungstool in der Python-Sprache. Es wird zum einfachen Installieren, Aktualisieren und Verwalten von Python-Paketen verwendet. Wenn Sie pip zum Installieren eines Pakets verwenden, lädt es automatisch die entsprechende Paketdatei von PyPI (Python Package Index) herunter und installiert sie am angegebenen Speicherort. Wo werden also die von pip installierten Pakete gespeichert? Dies ist ein Problem, auf das viele Python-Entwickler stoßen werden. Dieser Artikel befasst sich mit dem Speicherort der von pip und Provide installierten Pakete

Wenn wir längere Zeit nicht am Computer sind, ist es am besten, den Computer herunterzufahren, um ihn zu schützen. Wo ist also das Herunterfahren in Win11? Öffnen Sie im Allgemeinen einfach das Startmenü und Sie können es finden die Abschalttaste darin. Wo man Windows 11 herunterfährt: Antwort: Im Power-Button des Startmenüs. 1. Zuerst klicken wir auf das „Windows-Logo“ in der unteren Taskleiste, um das „Startmenü“ zu öffnen. 2. Nach dem Öffnen finden Sie in der unteren rechten Ecke den „Power“-Button, wie in der Abbildung dargestellt. 3. Nachdem Sie auf den Netzschalter geklickt haben, wird „Herunterfahren“ angezeigt. Klicken Sie darauf, um das Gerät herunterzufahren. 4. Wenn der Computer aufgrund besonderer Umstände, z. B. eines Absturzes, nicht heruntergefahren werden kann, können Sie direkt den „Einschaltknopf“ am Computer gedrückt halten, um ein Herunterfahren zu erzwingen.

Als bekannte Kurzvideoplattform in China bietet Kuaishou vielen YouTubern die Möglichkeit, ihre Talente zu präsentieren und ihr Leben zu teilen. Beim Hochladen eines Videos sind einige unerfahrene Ersteller möglicherweise verwirrt darüber, wie sie den Ort für die Veröffentlichung des Videos ändern können. In diesem Artikel erfahren Sie, wie Sie den Veröffentlichungsort von Kuaishou-Videos ändern, und geben einige Tipps für die Veröffentlichung von Kuaishou-Videos, damit Sie diese Plattform besser nutzen können, um Ihre Arbeit zu präsentieren. 1. Wo wird Kuaishou veröffentlicht und wie kann der Standort geändert werden? 1. Veröffentlichungsoberfläche: Klicken Sie in der Kuaishou-App auf die Schaltfläche „Veröffentlichen“, um die Video-Veröffentlichungsoberfläche aufzurufen. 2. Standortinformationen: In der Veröffentlichungsoberfläche gibt es eine Spalte „Standort“. Klicken Sie hier, um die Standortauswahloberfläche aufzurufen. 3. Standort ändern: Klicken Sie in der Standortauswahloberfläche auf die Schaltfläche „Standort“, um den aktuellen Standort anzuzeigen. Wenn Sie den Standort ändern möchten, klicken Sie auf „Standort“.
