为了防止iframe闪烁,我在setTimeout中设置其可见性(CSS设置为visibility:hidden)
setTimeout(function(){
$n('#myFrame').css('visibility','visible');}, 750);
效果很好,虽然当我在框架内加载后续位置时,闪烁行为会返回,因为已经设置了可见性。
我想要做的是在DOM /页面加载之前创建一个以iframe为目标的函数,将可见性再次设置为隐藏,然后再设置为setTimeout。
请记住,此脚本将在ServiceNow平台上运行,这意味着某些选项有限(无法在文档头中加载等)
它有点像反向文档.ready()。这甚至可能吗?
感谢任何线索,
帕
答案 0 :(得分:1)
只需在源代码中设置:
<iframe style="display: none;"></iframe>
然后在你想要的时候取消隐藏它。
答案 1 :(得分:1)
$('buttonToChangeTheIframePage').click(function(e){
e.preventDefault();
$('#myFrame').css('visibility','hidden');
$('#myFrame').delay(1000).css('visibility','visible');
});
这假设您要从iframe的OUTSIDE加载位置 - iframe中的任何内容(如链接)仍会触发此行为。
修改强>
这实际上更好,适用于所有情况(我认为 - 只是检查没有愚蠢的错误,因为没有测试)
<iframe id="myFrame" src="http://www.google.com/" onLoad="hideUnhide();"></iframe>
function hideUnhide(){
$('#myFrame').css('visibility','hidden').delay(1000).css('visibility','visible');
}
答案 2 :(得分:0)
在addAfterPageLoadedEvent(func)
js_include_doc_type.js
<iframe id="gsft_main" style="visibility: hidden;">
anything ....
<script>
addAfterPageLoadedEvent(function() {
$j('#gsft_main').css('visibility','visible');
});
</script>
</iframe>