iframe flashes “white” on load

断了今生、忘了曾经 提交于 2019-12-24 07:34:14

问题


I am using an iframe in my project and it seems that whenever it loads content on a opacity background - it flashes "white" for around 1 second before correctly appearing.

It seems that it fires loaded event before the jQuery script is ready. I have tried

style="visibility:hidden;" onload="this.style.visibility = 'visible';"

but doesn't work. Any other ideas to get rid of this ?


回答1:


Try using:

style="display:none" onload="this.style.display = 'block';"

visibility:hidden doesn't actually "hide" the element as such - it still takes up the space it would if it were visible. display:none actually makes the element completely invisible, as if it doesn't exist.




回答2:


If you have control over the framed page - Set your background color on that page to transparent. Most browsers are white by default




回答3:


I had some difficulty with getting:

style="display:none" onload="this.style.display = 'block';"

to work in my situation on Chrome and Safari.

If these aren't working for you, try:

style="opacity: 0;" onload="this.style.opacity = 1;"




回答4:


I had exactly this problem, and tried all the remedies on this page without success. It was flashing on Chrome, not FireFox.

What worked for me was changing:

$("#iframe").prop('src', url);

to

$("#iframe").attr('href', url);


来源:https://stackoverflow.com/questions/2351232/iframe-flashes-white-on-load

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!