0

为了防止 iframe 闪烁,我在 setTimeout 内设置了它的可见性(CSS 设置为可见性:隐藏)

setTimeout(function(){  
$n('#myFrame').css('visibility','visible');}, 750);

效果很好,尽管当我在框架内加载后续位置时,由于可见性已经设置,闪烁行为会返回。

我想做的是在加载DOM/页面之前创建一个以iframe为目标的函数,以将可见性再次设置为隐藏,然后设置超时。

请记住,此脚本将在 ServiceNow 平台上运行,这意味着某些选项是有限的(无法加载到文档头等)

这有点像反向 document.ready()。这甚至可能吗?

感谢任何线索,

帕科

4

3 回答 3

1

只需在您的源中设置它:

<iframe style="display: none;"></iframe>

然后在需要时取消隐藏它。

于 2014-01-07T19:44:44.150 回答
1
$('buttonToChangeTheIframePage').click(function(e){
    e.preventDefault();

      $('#myFrame').css('visibility','hidden'); 
      $('#myFrame').delay(1000).css('visibility','visible');
});

这假设您从 iframe 外部加载位置 - iframe 内的任何内容(如链接)仍会触发此行为。

编辑

这实际上更好,并且适用于所有情况(我认为 - 只需检查没有未经测试的愚蠢错误)

<iframe id="myFrame" src="http://www.google.com/" onLoad="hideUnhide();"></iframe>

function hideUnhide(){
    $('#myFrame').css('visibility','hidden').delay(1000).css('visibility','visible');

}
于 2014-01-07T19:50:06.270 回答
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>
于 2016-06-23T07:42:21.583 回答