iframe
Javascriptを使用して読み込まれるを含むページがあります。
index.html
<iframe id="myFrame" width="800" height="600" style="display: none;"></iframe>
<div id="loader"><!-- some loading indicator --></div>
<script type="text/javascript">
function someFunction() {
var myFrame = document.getElementById('myFrame');
var loader = document.getElementById('loader');
loader.style.display = 'block';
myFrame.src = 'myFrame.html';
myFrame.onload = function() {
myFrame.style.display = 'block';
loader.style.display = 'none';
};
}
</script>
に読み込まれるページにはiframe
、JS駆動のスクロールバー(jScrollPane + jQueryディメンション)を追加する目的で特定の要素のサイズを計算するJavascriptロジックが含まれています。
myFrame.html
<div id="scrollingElement" style="overflow: auto;">
<div id="several"></div>
<div id="child"></div>
<div id="elements"></div>
</div>
<script type="text/javascript">
$(document).load(function() {
$('#scrollingElement').jScrollPane();
});
</script>
これはChrome(およびおそらく他のWebkitブラウザー)では機能しますが、FirefoxとIEでは失敗します。これは、jScrollPane
呼び出された時点ですべての要素がまだ見えず、jQueryディメンションが要素のディメンションを判別できないためです。
呼び出される前にiframe
自分が表示されていることを確認する方法はありますか?遅延に使用する以外は、絶対に避けたいものです。 $(document).ready(...)
setTimeout
jScrollPane