Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.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
在不闪烁/闪烁的情况下重新加载iframe(在Javascript中)_Javascript_Jquery_Ajax - Fatal编程技术网

在不闪烁/闪烁的情况下重新加载iframe(在Javascript中)

在不闪烁/闪烁的情况下重新加载iframe(在Javascript中),javascript,jquery,ajax,Javascript,Jquery,Ajax,我想问一下,是否有人有一个简单的解决方案,允许我重新加载/刷新iframe,但在页面重新加载时不会闪烁/闪烁,这是可能的吗? 也许可以先设置模糊的动画,然后再设置模糊的动画,而不是闪烁/闪烁?我不知道有什么意见会有帮助 谢谢 下面是我现在如何重新加载iframe document.getElementById("FrameID").contentDocument.location.reload(true); 感谢您的帮助。最简单的方法: 在DOM外部或隐藏元素中创建新的iframe 将页面加载

我想问一下,是否有人有一个简单的解决方案,允许我重新加载/刷新iframe,但在页面重新加载时不会闪烁/闪烁,这是可能的吗? 也许可以先设置模糊的动画,然后再设置模糊的动画,而不是闪烁/闪烁?我不知道有什么意见会有帮助

谢谢

下面是我现在如何重新加载iframe

document.getElementById("FrameID").contentDocument.location.reload(true);

感谢您的帮助。

最简单的方法:

  • 在DOM外部或隐藏元素中创建新的iframe
  • 将页面加载到隐藏的框架中
  • 一旦负载在隐藏帧内激发,只需交换它们 交换


    要真正交换它们,只需让它们彼此相邻,并切换每一个的
    显示:none/block
    css。

    确实无法避免闪烁,因为这是页面刷新和呈现新内容


    您可以在刷新时隐藏iframe。在iframe中,当DOM就绪时,通过parent.functionName()调用某个父函数,然后使iframe可见。

    您可以尝试将
    iframe
    放在容器
    div
    中:

    <div id="iframe-container">
        <iframe src="..."></iframe>
    </div>
    

    希望这能起作用,我还没有测试过。您还需要使用CSS。

    不,我认为这是不可能的。它需要重新加载页面,所以总是有点闪烁。它被称为FOUC,不容易修复。在通常与CSS相关的地方,在本例中与iFrame源代码相关。酷!!:)但是你如何交换它们呢?(我从未见过这听起来超级酷)我添加了一个example@compcobalt我想有很多方法,但最简单的方法可能是将新的放在DOM中显示的一个之后,然后隐藏旧的并显示新的。我不确定这会有多快。就像@Thor84no所说的,让他们一个挨着一个,简单地显示/隐藏将是最简单和最快的。谢谢。我处境中的救星
    var container = document.getElementById('iframe-container');
    
    var iframe2 = document.createElement('iframe');
    iframe2.src = 'http://new.url.com';
    iframe2.style.visibility = 'hidden';
    container.appendChild(iframe2);
    
    container.removeChild(container.getElementsByTagName('iframe')[0]);
    iframe2.style.visibility = 'visible';