iOS-browser - iFrame springt nach oben, wenn die css ändern oder Inhalte, die mit JavaScript
Scheint dieses problem schon ewig. Unter einigen spezifischen Umständen, iOS-Browser-Oberfläche diese frustrierende Fehler.
Das Problem:
Wenn Sie eine web-Seite, die enthält einen iFrame, und Sie modifizieren die iFrames content-Dokument programmgesteuert, der iFrame wird der Sprung an die Spitze der Seite. Dies geschieht jedoch nur, wenn die Seite, vor der DOM-manipulation, ist darüber hinaus etwas an Höhe, in der Regel scheint dies eine Länge, die größer ist als zweimal die Länge des Viewports.
Diese Frage erscheint unabhängig davon, ob Sie geändert wird, die DOM-Struktur oder ändern der Stil-Eigenschaften.
Dieser Fehler ist nur vorhanden auf iOS, einschließlich der neuesten Version, die ab diesem Zeitpunkt (9.2)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Problem Beschreibung:
Das Problem scheint zu sein, dass Browser in iOS (einschließlich chrome, wie es verwendet die gleiche rendering-engine) sind nicht korrekt die Berechnung der Höhe des iFrames, diese verursacht zu springen Verhalten, wenn Sie neu auftreten, auf die browser.
Die Lösungen:
Lösung A: Hinzufügen von den folgenden code, um die iFrame-stylesheet behebt das Problem in den meisten Fällen, wenn das scrollen bei drag-events, kann Probleme mit diesem Ansatz.
Lösung B:
Wenn der iFrame erbracht hat alles, sollten Sie berechnen die Höhe des iFrame-Inhalte legen Sie dann die Höhe ein Wert explizit auf das iFrame-element mithilfe von inline-style in javascript. Dieser Wert muss aktualisiert werden, wie Inhalte geändert oder Hinzugefügt in dem iFrame, müssen Sie sicherstellen, dass die Höhe ist immer richtig, um zu verhindern, dass der Sprung von reoccurring.
Dies stellt Herausforderungen beim Umgang mit third-party-plugins und-widgets ändern die Seite, die keine offensichtliche Rückrufe. Der beste Fall für den Umgang mit dieser für jetzt, ist die Verwendung von mutation Beobachter.
Wenn Sie code wie diesen
Versuchen, Sie zu entfernen
doc.close();
Es hat mir geholfen.Fand ich eine Lösung in Ionischer 3, es installieren können, die native Tastatur und deaktivieren Sie den Autofokus bei der Eingabe mit dem nächsten code
import { Tastatur } von '@ionic-native/Tastatur";
diese.Tastatur.disableScroll(true);