javascript - 加载期间隐藏 iframe

标签 javascript jquery html iframe

我想在加载期间隐藏iframe,以防止背景颜色上出现白色矩形。

我的实际js

$( '#my_frame' )
    .css( 'visibility', 'hidden' )
    .attr( 'src', '/my_new_page.html' )
    .one( 'load', function () {
        $( this ).css( 'visibility', 'visible' )
    });

问题是,当在 iframe 中时,我捕获了 onbeforeunload 事件,并且阻止了页面的切换,因为 iframe 从不触发 load 事件,使其保持隐藏状态。

我怎样才能做到这一点?

PS:我尝试在隐藏页面之前捕获 unload 事件,但在更改 src 时它从未触发。

jsFiddle demo

最佳答案

经过一番尝试,我找到了一种可行的方法:

$frame
  .load( function () {
    this.style.visibility = 'visible';
    this.contentWindow.onunload = function ( e ) {
      this.window.frameElement.style.visibility = 'hidden';
    };
  });

当 iframe 加载时,我会显示它,并将隐藏 iframe 的卸载事件附加到它的窗口。

关于javascript - 加载期间隐藏 iframe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26160355/

相关文章:

创建 div 后 jQuery 附加一个点击处理程序

javascript - 使用 JS 隐藏元素中的文本(而不是元素本身)

javascript - 在转换过程中隐藏背面的最佳方法是什么?

java - Android:无法在 Textview 中将来自 SQLite 的字符串设置为 HTML

javascript - app.post 无法在 Node.js 上多次运行

javascript - CakePHP 3 : Ajax response is returning a 200 response code and a parsererror

javascript - 如何在js中将html内容添加到静态文本中

php - 根据需要锁定表单上的输入

javascript - 根据容器的内容添加类

javascript - 如何像 React 中的 {...props} 一样解构 Vue 中的 props?