私はそれはjavascriptのコードザッツjQueryの
MyLibrary = {
iframeApp: function(options) {
var $app = $(window[options.name]),
$appContainer = $(options.wrapperId);
window.setInterval(function() {
var frameEl = $app[0].frameElement,
frameDoc = 0,
height = 0;
if (frameEl.contentDocument !== undefined) {
frameDoc = frameEl.contentDocument,
height = frameDoc.height || frameDoc.body.offsetHeight;
} else if (frameEl.document !== undefined && frameEl.document.documentElement !== undefined) {
frameDoc = frameEl.document.documentElement,
height = frameDoc.offsetHeight;
}
$appContainer.css("height", height);
}, 500);
}
}
を使用しています+ IE 7で実行するソリューションを持っています。ここにhtmlがあります。
<div id="iframe-runner">
<iframe scrolling="no"frameborder="0"name="myiframe"class="myiframe"src="http://mysrc.com/sweet-i-frame-app"width="100%"height="100%"></iframe>
</div>
<script type="text/javascript">
$(function() {
MyLibrary.iframeApp({
name: "myiframe",
wrapperId: "#iframe-runner"
});
})
</script>
は、1つのページでそれを実行:
<script type="text/javascript"src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.js"></script>
<div id="iframe-runner">
<iframe scrolling="no"frameborder="0"name="myiframe"class="myiframe"src="http://mysrc.com/sweet-i-frame-app"width="100%"height="100%"></iframe>
</div>
<script type="text/javascript">
$(function() {
iframeApp({
name: "myiframe",
wrapperId: "#iframe-runner"
});
})
function iframeApp(options) {
var $app = $(window[options.name]),
$appContainer = $(options.wrapperId);
window.setInterval(function() {
var frameEl = $app[0].frameElement,
frameDoc = 0,
height = 0;
if (frameEl.contentDocument !== undefined) {
frameDoc = frameEl.contentDocument,
height = frameDoc.height || frameDoc.body.offsetHeight;
} else if (frameEl.document !== undefined && frameEl.document.documentElement !== undefined) {
frameDoc = frameEl.document.documentElement,
height = frameDoc.offsetHeight;
}
$appContainer.css("height", height);
}, 500);
}
</script>
あなたはあなたがスムーズに遷移/少ないタイムラグのために変化率を変更することができ、アイフレームSRC
を更新していることを確認します。前の高さが現在の高さよりも小さいかどうかを確認してから、iframeのサイズを+ 25pxに調整して、「成長中の」エフェクトにすることもできます。 – Michael
申し訳ありませんmylibraryをどこに置くのですか? – shicky
これは、あなたが何らかの種類のライブラリを持っていれば単なる例でした。しかし、そうでなければ、 'iframeApp:function(options){'は 'MyLibrary = {...}'を一括して削除して関数iframeApp(options){'あなたが必要とするページで 'iframeApp({your-options})'を呼び出すだけです。 'iframeApp'は。 – Michael