iframe的Javascript问题是';它在加载之前是隐藏的

iframe的Javascript问题是';它在加载之前是隐藏的,javascript,iframe,jscrollpane,Javascript,Iframe,Jscrollpane,我有一个页面,其中包含一个使用Javascript加载的iframe: index.html 这在Chrome(可能还有其他Webkit浏览器)中有效,但在Firefox和IE中失败,因为在调用jScrollPane时,所有元素仍然不可见,jQuery维度无法确定任何元素的维度 在调用$(document.ready(…)之前,是否有方法确保我的iframe可见?除了使用setTimeout延迟jScrollPane,这是我绝对想要避免的。而不是使用display:none使iframe不可见,

我有一个页面,其中包含一个使用Javascript加载的
iframe

index.html

这在Chrome(可能还有其他Webkit浏览器)中有效,但在Firefox和IE中失败,因为在调用
jScrollPane
时,所有元素仍然不可见,jQuery维度无法确定任何元素的维度


在调用
$(document.ready(…)
之前,是否有方法确保我的
iframe
可见?除了使用
setTimeout
延迟
jScrollPane
,这是我绝对想要避免的。

而不是使用
display:none
使iframe不可见,您可以尝试

。。。设置可见性:隐藏

。。。设置
位置:绝对;顶部:-600px

。。。设置
不透明度:0


或者其他让jQuery“看到”对象而不是用户的东西(并重置
myFrame.onload
函数中使用的css属性)。

一些浏览器认为,当“display:none”应用于替换的元素(如Flash或iframe)时,不再需要该元素的视觉信息。因此,如果该元素稍后由CSS显示,浏览器实际上将从scratch重新创建可视数据

我设想,如果将iframe的默认值设置为“display:none;”,浏览器将跳过HTML的呈现,因此标记没有任何维度。我会将可见性设置为“隐藏”或将其放置在页面之外,而不是使用“display:none;”


祝你好运。

隐藏的iFrame是一个巨大的安全问题。如果合法的话,最好尝试另一种方法来实现您想要的功能,因为希望未来的浏览器能够完全摆脱这个功能

可见性:崩溃;
显示:隐藏;
高度:0px

也将有助于消除空白。。
iframe还将加载..

显示:隐藏?我知道“可见性:隐藏”,但在文档中看不到显示:隐藏:为什么不直接使用页面上的javascript?@ChibuezeOpata这是5年前的事了,所以我记不清了,但我知道这有一个很好的理由:-)另外,z-index:-1绝对没有帮助,首先,“不使用iFrame”怎么可能防止坏人利用iFrame的安全漏洞(?!?)。让他等待webdevelopers乌托邦的到来,所有浏览器都只支持“真正的东西”,这也于事无补。
<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>
<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>