Kann ein Iframe nur einen bestimmten Teil der Seite anzeigen?
Lesezeit: 5 Minuten
MANnDAaR
Ich arbeite an Iframes und muss einen bestimmten Teil der Seite anzeigen [say, the top right ] in einem Iframe mit etwa 300px Breite und 150px Höhe.
Beispiel:
Angenommen, ich wollte ein setzen iframe von www.example.com/portfolio.php auf einer Seite, aber haben Sie den Iframe so bemessen, dass nur die “Portfolio-Sport“Abschnitt bei der oben rechts.
Befindet sich der Iframe in derselben Domäne wie die übergeordnete Seite?
– Nick Craver
17. Juli 2010 um 15:27 Uhr
Ich glaube nicht, dass mit einem <iframe> ist wirklich der richtige Weg, dies zu tun.
– Spitze
17. Juli 2010 um 15:36 Uhr
Spitz
Ein <iframe> gibt Ihnen ein vollständiges Fenster, mit dem Sie arbeiten können. Der direkteste Weg, das zu tun, was Sie möchten, besteht darin, dass Ihr Server Ihnen eine vollständige Seite liefert, die nur das Fragment enthält, das Sie anzeigen möchten.
Alternativ können Sie auch einfach eine einfache verwenden <div> und verwenden Sie die jQuery-Funktion “load”, um die gesamte Seite zu laden und nur den gewünschten Abschnitt herauszupicken:
Möglicherweise müssen Sie noch andere Dinge tun, und ein wesentlicher Unterschied besteht darin, dass der Inhalt Teil der Hauptseite wird, anstatt in einem separaten Fenster getrennt zu sein.
Danke Spitze. Es ist genau das, was ich mir angesehen habe – “Skipped iframe”.
– MANnDAaR
17. Juli 2010 um 16:02 Uhr
Ich bin mir nicht sicher, aber wenn das geladene HTML ein POST-Formular enthält, bin ich mir nicht sicher, ob die Übermittlung an den Server aufgrund von Sicherheitseinschränkungen (Richtlinie zum gleichen Ursprung) funktioniert.
– Paulo
11. November 2014 um 23:38 Uhr
@Paolo gut, wenn es sich um Inhalte aus einer anderen Domäne als der handelt .load() funktioniert nicht, es sei denn, die Quellsite legt entsprechende CORS-Header fest. Wenn es geladen wird, sollte ein POST problemlos funktionieren.
– Spitze
11. November 2014 um 23:50 Uhr
Beachten Sie, dass dadurch keine Skripte/Stile ausgeführt werden, die von einer Seite über jQuery geladen werden load(). Damit musst du umgehen $.getScript unter anderem.
Ich denke, dies ist die richtige Lösung, die akzeptierte Antwort erfüllt die Anforderung mit iframe nicht.
– Tᴀʀᴇǫ Mᴀʜᴍᴏᴏᴅ
6. Januar 2017 um 8:10 Uhr
Perfekte Lösung. Danke vielmals.
– Vivek Sancheti
7. Februar 2017 um 7:22 Uhr
Das Scrollen von Nein funktioniert bei mir in der React-JS-Anwendung nicht
– yaswantkoneri
21. November 2019 um 6:46 Uhr
die beste Antwort und Lösung
– h1h2
21. Oktober 2020 um 13:34 Uhr
dmamales
Ich brauchte einen Iframe, der einen Teil einer externen Seite mit einer vertikalen Bildlaufleiste einbettet und die Navigationsmenüs oben und links auf der Seite ausschneidet. Ich konnte es mit etwas einfachem HTML und CSS machen.
div#container
{
width:840px;
height:317px;
overflow:scroll; /* if you don't want a scrollbar, set to hidden */
overflow-x:hidden; /* hides horizontal scrollbar on newer browsers */
/* resize and min-height are optional, allows user to resize viewable area */
-webkit-resize:vertical;
-moz-resize:vertical;
resize:vertical;
min-height:317px;
}
iframe#embed
{
width:1000px; /* set this to approximate width of entire page you're embedding */
height:2000px; /* determines where the bottom of the page cuts off */
margin-left:-183px; /* clipping left side of page */
margin-top:-244px; /* clipping top of page */
overflow:hidden;
/* resize seems to inherit in at least Firefox */
-webkit-resize:none;
-moz-resize:none;
resize:none;
}
Ich denke, dies ist das erste Mal, dass dieser Code gepostet wurde, also teilen Sie ihn
Ich denke, dieses #inside sollte Teil einer externen Website sein, die nicht unter unserer Kontrolle steht.
– Kurcula
6. September 2017 um 20:20 Uhr
Gemeinschaft
Stellen Sie den Iframe auf die entsprechende Breite und Höhe ein und setzen Sie das Scrolling-Attribut auf “no”.
Wenn sich der gewünschte Bereich nicht oben links auf der Seite befindet, können Sie den Inhalt zum entsprechenden Bereich scrollen. Beziehen Sie sich auf diese Frage:
Iframe mit Javascript scrollen?
Ich glaube, Sie können nur scrollen, wenn sich beide Seiten auf derselben Domain befinden.
Ich denke, dieses #inside sollte Teil einer externen Website sein, die nicht unter unserer Kontrolle steht.
– Kurcula
6. September 2017 um 20:20 Uhr
Stephan Ostermüller
Angenommen, Sie verwenden einen Iframe, um öffentlich zugängliche Inhalte, die Ihnen nicht gehören, in Ihre Website zu importieren, dann können Sie den Seitenanker immer verwenden, um Ihren Iframe so zu laden, dass er dort geladen wird, wo Sie ihn haben möchten.
Zuerst erstellen Sie einen Iframe mit der Breite und Höhe, die zum Anzeigen der Daten erforderlich sind.
Zweitens installieren Sie ein Add-on wie Show Anchors 2 für Firefox und verwenden Sie es, um alle Seitenanker auf der Seite anzuzeigen, die Sie in Ihrem Iframe anzeigen möchten. Suchen Sie den Ankerpunkt, den Ihr Frame verwenden soll, und kopieren Sie die Ankerposition, indem Sie mit der rechten Maustaste darauf klicken.
Drittens verwenden Sie die kopierte Webadresse mit Ankerpunkt als Iframe-Quelle. Wenn der Frame geladen wird, zeigt er die Seite ab dem von Ihnen angegebenen Ankerpunkt an.
Befindet sich der Iframe in derselben Domäne wie die übergeordnete Seite?
– Nick Craver
17. Juli 2010 um 15:27 Uhr
Ich glaube nicht, dass mit einem
<iframe>
ist wirklich der richtige Weg, dies zu tun.– Spitze
17. Juli 2010 um 15:36 Uhr