2011-08-21 199 views
0

我正在为iPad/Mobile-Safari创建专门的Web应用程序。主页是一个普通的HTML/CSS页面,包含3个主要部分。但是,一旦你点击了3个主要按钮,你就会被引导到一个由2个iFrames构成的页面(一个在Nav上,一个在内容的底部)移动Safari浏览器白色背景

问题是,有一个白色的快速闪光,然后加载页面。我试图隐藏iframe的可见性风格,然后onLoad将其更改为“可见”并且工作正常。但是,只有在第一次加载iFrame构建的页面时,它才会起作用。一旦它加载,我点击该页面上的链接,白色闪光灯又回来了,因为iFrame已经加载,所以它已经可见。

我试过很明显的像添加CSS样式到背景色的iframe(也尝试了内联样式),但同样的事情发生了。任何想法如何解决它?谢谢!

+0

有一个保密协议,所以我不能把它放在视图上。 – JDPaulsen

+0

我解决了它。这不是一个优雅的解决方案,但是在iFrame中添加次要内容也只能在Load上看到,它会照顾白色的Flash。没有理由将这些内容放在iFrame上,但需要处理这个问题。谢谢! – JDPaulsen

回答

1

你可以这样做作弊:

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

在内容上,你可以捕捉所有的链接和形式:

document.getElementsByTagName("a").addEventListener("click", function(e){ 
    window.top.document.getElementsByTagName("iframe")[0].style.visibility = "hidden"; 
}); 

解释:

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

我遇到了那个问题,那整整一天试图解决,但我不能除了上面的方式。您可以在Chrome,Firefox和其他浏览器上遇到该问题,而不仅仅是在Safari Mobile上。

0

我觉得和KimKha一样。但“能见度”有时并不好,所以我认为使用“不透明度”更好。

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