Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mobile 移动狩猎白色背景_Mobile_Iframe_Safari - Fatal编程技术网

Mobile 移动狩猎白色背景

Mobile 移动狩猎白色背景,mobile,iframe,safari,Mobile,Iframe,Safari,我正在专门为iPad/mobile Safari创建一个web应用程序。主页是一个普通的HTML/CSS页面,有3个主要部分。但是,一旦你点击3个主按钮中的任何一个,你就会被引导到一个由2个iFrame构成的页面(一个在顶部用于导航,一个在底部用于内容) 问题是,在加载这3个页面之前,有一个白色的快速闪光,然后加载页面。我试着隐藏iframe的可见性样式,然后将其onLoad更改为“visible”,结果成功了。但当iFrame构建的页面第一次加载时,它只工作了一次。一旦它加载了,我点击了页面上

我正在专门为iPad/mobile Safari创建一个web应用程序。主页是一个普通的HTML/CSS页面,有3个主要部分。但是,一旦你点击3个主按钮中的任何一个,你就会被引导到一个由2个iFrame构成的页面(一个在顶部用于导航,一个在底部用于内容)

问题是,在加载这3个页面之前,有一个白色的快速闪光,然后加载页面。我试着隐藏iframe的可见性样式,然后将其onLoad更改为“visible”,结果成功了。但当iFrame构建的页面第一次加载时,它只工作了一次。一旦它加载了,我点击了页面上的链接,白色的闪光就会回来,因为iFrame已经加载了,所以它已经可见了

我尝试了一些显而易见的方法,比如在iframe中添加一个带有背景色的css样式(也尝试了内联样式),但同样的事情发生了。有没有办法解决这个问题?谢谢

你可以这样做:

<iframe src="..." style="visibility:hidden;" onload="this.style.visibility='visible';"></iframe>
说明:

  • 第一次,您的iframe是隐藏的,您可以看到主页的背景(而不是iframe的白色)
  • 加载后,Javascript将使iframe可见,您可以看到iframe的内容和背景
  • 当单击iframe内的链接时,将触发触发器,Javascript将再次隐藏iframe

我遇到了那个问题,花了整整一天的时间试图解决,但我不能不这样做。你可以在Chrome、Firefox和其他浏览器上遇到这个问题,而不仅仅是在Safari Mobile上。

我认为KimKha也是如此。但“可见性”有时并不好用,所以我认为使用“不透明度”更好

<iframe src="..." style="opacity:0;" onload="this.style.opacity=1;"></iframe>

我遇到了这个问题,找到了很多类似KimKha提到的解决方案

没有一个解决方案可以帮助iframe中的进一步页面转换,隐藏它并不是一个好的解决方案

通过大量的跟踪和错误,我提出了以下解决方案,解决了我的IOS webkit iFrame过渡白色闪存问题,具有讽刺意味的是,这是一个如此简单的解决方案:

只需将此添加到CSS中

html{background:#000}
将颜色更改为所需的颜色

IOS webkit的最终问题似乎是,当您的iframe调用另一个页面时,IOS会在呈现新页面内容之前的一瞬间从当前页面删除正文。通过强制HTML使用背景色(默认为白色),这修复了白色闪烁

另外请注意,如果服务器设置为不允许缓存提供样式的.css文件,那么您将始终得到闪烁

在apache中确保缓存

ExpiresByType text/css "access plus 30 days"

有保密协议,所以我不能把它放在视图上。我解决了它。这不是一个优雅的解决方案,但在iFrame中添加第二个内容(也只有在加载时才可见)可以解决白色闪烁的问题。没有理由将该内容放在iFrame上,但它解决了问题。谢谢
ExpiresByType text/css "access plus 30 days"