Das Szenario:
Ich erstelle eine Kiosk-App, die in Chrome ausgeführt wird. Darin lade ich einen Iframe von einer anderen Domäne über einen Link mit einem Anker (http: /www.whatever.com/#specific_content) in ein Modal.
Das Problem:
Wenn dieser Inhalt geladen wird, springt der iframe auf #specific_content, aber die übergeordnete Seite springt ebenfalls.
Es ist eine Kiosk-App mit einer einzelnen Seite, daher ist die Position der übergeordneten Seite sehr wichtig. Die tatsächlichen Details des Szenarios sind etwas komplizierter als nur die obigen:
Um das Problem zu demonstrieren, habe ich eine jsFiddle eingerichtet, aber Sie müssen die Ausgabe ohne den jsFiddle-Chrom sehen, um den vollen Umfang des Problems zu sehen:
Schritt 1) Klicken Sie auf "Link zum Inhalt", um den Wrapper neu zu positionieren
Schritt 2) Klicken Sie auf "Link to load", um den iFrame-Inhalt zu laden
Demo: Ссылка
Geige: Ссылка
Der Code:
CSS:
%Vor%HTML
%Vor%JS
%Vor%Die Antwort finden Sie hier: Wenn iframe mit einem angegebenen #element geladen wird, wird der übergeordnete Ansichtspunkt an dieselbe Position verschoben
Die Lösung:
Verstecke den iFrame, bis er vollständig geladen ist, wodurch der Anker umgangen wird, der die übergeordnete Seite betrifft.
Demo: Ссылка
Geige: Ссылка
JS
%Vor%Danke an @ DJdavid98, um auf diese Antwort zu zeigen.
Ich fotografiere hier ein wenig im Dunkeln, aber hast du schon mal so etwas versucht, das an das DOM der Außenseiten angehängt ist?
%Vor%Tags und Links javascript jquery css google-chrome browser