<iframe ID="myFrame" wIDth="800" height="600" ></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>@H_403_2@在iframe中加载的页面包含一些JavaScript逻辑,它计算某些元素的大小,以添加Js驱动的滚动条(JscrollPane jquery Dimensions). @H_403_2@myFrame.HTML
<div ID="scrollingElement" > <div ID="several"></div> <div ID="child"></div> <div ID="elements"></div></div><script type="text/JavaScript">$(document).load(function() { $('#scrollingElement').JscrollPane();});</script>@H_403_2@这在Chrome(可能还有其他Webkit浏览器)中起作用,但在firefox和IE中失败,因为在JscrollPane被调用的时候,所有元素仍然是无效的,并且jquery Dimensions无法确定任何元素的维度. @H_403_2@有没有办法确保我的iframe在$(document).ready(…)被调用之前可见?除了使用setTimeout来延迟JscrollPane,这是我绝对希望避免的事情.解决方法 有些浏览器假定当对替换的元素(如Flash或者iframe)应用“display:none”时,不再需要该元素的视觉信息.因此,如果元素稍后由CSS显示,浏览器将实际上重新创建可视化数据. @H_403_2@我想像iframe默认为“display:none;”使浏览器跳过HTML的呈现,因此标签没有任何尺寸.我会将可见性设置为“隐藏”,或将其置于页面之外,而不是使用“display:none;”. @H_403_2@祝你好运. 总结
以上是内存溢出为你收集整理的加载之前隐藏的iframe的Javascript问题全部内容,希望文章能够帮你解决加载之前隐藏的iframe的Javascript问题所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)