加载之前隐藏的iframe的Javascript问题

加载之前隐藏的iframe的Javascript问题,第1张

概述我有一个页面包含使用 Javascript加载的iframe 的index.html <iframe id="myFrame" width="800" height="600" style="display: none;"></iframe><div id="loader"><!-- some loading indicator --></div><script type="text/jav 我有一个页面包含使用 Javascript加载的iframe @H_403_2@的index.HTML

<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问题所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1091753.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存