Wenn Sie keine Kreuz domaining‘sind, das heißt Sie sind nicht google.com oder ähnliches in die iframe Laden, ist es relativ einfach.
Deklarieren die unten-Funktion, die das popover Element (.pop-right
) und der popover Inhalt als Parameter nimmt:
function adjustPopover(popover, iframe) {
var height = iframe.contentWindow.document.body.scrollHeight + 'px',
popoverContent = $(popover).next('.popover-content');
iframe.style.height = height;
popoverContent.css('height', height);
}
1) erhalten scrollHeight
des iframe (die wirkliche Höhe)
2) erhalten, die .popover-content
<div>
verbunden mit .pop-right
3) .popover-content
auf die tatsächliche Höhe einstellen, und das gleiche mit der , um Bildlaufleisten zu vermeiden.
Dann in Ihrem popover Initialisierungsaufrufes adjustPopover()
in den iframes onload-Ereignis mit onload="adjustPopover(".pop-right", this);"
:
$('.pop-right').popover({
title : 'Loading External File',
html : true,
placement : "right",
content: function() {
return '<iframe src="content.html" style="border:none" onload="adjustPopover(".pop-right", this);"></iframe>';
}
});
Es ist eine gute Idee, eine Mindesthöhe für die iframes einzustellen. Wenn Sie das nicht tun, wird Popover immer mindestens die Standardhöhe eines Iframes haben, in Chrome 150px.
iframe {
height: 40px;
min-height : 40px;
}
Hier ist ein jsfiddle Beispiel die jsfiddle Datei /css/normalize.css Laden ->http://jsfiddle.net/ovky3796/
Wie Sie sehen, ich ändert sich auch .popover
max-width
in der Demo. Dies ist nur zur Veranschaulichung, wenn Sie die Breite des Popover entsprechend dem Inhalt der anpassen möchten, tun Sie dasselbe wie oben mit scrollWidth
statt.