Frage
Ich habe eine Anwendung, die Ich mag würde in unserem Unternehmen CMS einbinden. Der einzige Weg, das zu tun (wie ich höre) zu laden, ist es in einem <iframe>
.
Ganz einfach: einfach eingestellt height
und width
100%
! Außer, es funktioniert nicht.
Ich habe herausfinden, über die Einstellung frameborder
0
, so dass es zumindest sieht wie ein Teil der Website, aber ich würde es vorziehen, nicht eine hässliche Scrollbar haben innen eine Seite, die allready man hat.
Kennen Sie irgendwelche Tricks, dies zu tun?
EDIT: Ich glaube, ich brauche, um meine Frage zu klären etwas:
- das Unternehmen CMS zeigt die Flusen und Sachen für unsere gesamte Website
- die meisten Seiten durch das CMS erstellt
- meine Anwendung ist nicht, aber sie werden mich in einer
<iframe>
lassen embedd - Ich habe keine Kontrolle über die
iframe
, so dass jede Lösung muss von der angegebenen Seite arbeitet (nach demsrc
Attribute desiframe
-Tages) - zeigt das CMS eine Fußzeile, so zu 1 Million Pixel, die die Höheneinstellung ist keine gute Idee,
Kann ich auf den übergeordneten Seiten DOM aus der referenzierten Seite? Dies könnte helfen, aber ich kann einige Leute sehen könnte das nicht möglich sein soll ...
scheint diese Technik zu arbeiten ( entnommen aus mehreren Quellen, sondern durch die link von der akzeptierten Antwort:
In geordneten Dokument:
<iframe id="MyIFRAME" name="MyIFRAME"
src="http://localhost/child.html"
scrolling="auto" width="100%" frameborder="0">
no iframes supported...
</iframe>
Kind:
<!-- ... -->
<body>
<script type="text/javascript">
function resizeIframe() {
var docHeight;
if (typeof document.height != 'undefined') {
docHeight = document.height;
}
else if (document.compatMode && document.compatMode != 'BackCompat') {
docHeight = document.documentElement.scrollHeight;
}
else if (document.body
&& typeof document.body.scrollHeight != 'undefined') {
docHeight = document.body.scrollHeight;
}
// magic number: suppress generation of scrollbars...
docHeight += 20;
parent.document.getElementById('MyIFRAME').style.height = docHeight + "px";
}
parent.document.getElementById('MyIFRAME').onload = resizeIframe;
parent.window.onresize = resizeIframe;
</script>
</body>
BTW: Dies funktioniert nur, wenn Eltern und Kind in der gleichen Domäne sind aufgrund einer Beschränkung in JavaScript aus Sicherheitsgründen ...
Lösung
Sie können entweder nur eine Skriptsprache verwenden, um die Seite in die übergeordnete Seite zu schließen, andere weise, möchten Sie vielleicht einen dieser JavaScript-Methoden, um zu versuchen:
http://brondsema.net/blog/index.php / 2007/06/06 / 100_height_iframe http://www.experts-exchange.com/Web_Development/ Web_Languages-Standards / PHP / Q_22840093.html
Andere Tipps
Sofern Ihr iframe auf dem gleichen Server wie die beinhaltende Seite gehostet wird, können Sie Zugriff es über Javascript .
Es gibt eine Reihe von vorgeschlagenen Methoden für Einstellung die iframe auf die volle Höhe des Inhalts , jeweils mit unterschiedlichem Erfolg - eine google für dieses Problem zeigen, dass es eine ganz allgemeiner, ohne wirklichen, one-size-fits-all-Konsensus-Lösung, die ich bin Angst!
Einige Leute haben berichtet, dass dieses Skript der Trick funktioniert, sondern müssen < a href = „http://www.daniweb.com/forums/post258858-4.html“ rel = „nofollow noreferrer“> einige Modifikation für Ihren speziellen Fall (auch hier sind Ihre iframe und übergeordnete Seite unter der Annahme auf die gleiche Domäne).
Ich könnte hier etwas fehlt, aber das Hinzufügen scrolling=no
als Attribut der iframe
Tag wird normalerweise von den Scrollbalken entfernen.