Javascript 隐藏的iframe onload事件

Javascript 隐藏的iframe onload事件,javascript,iframe,javascript-events,Javascript,Iframe,Javascript Events,我在这里看到了一些关于iframe onload的类似问题,但是没有任何东西适合我 我有一个隐藏的iframe,仅用于用户下载在我的服务器上动态创建的pdf。当用户单击按钮时,通过指向控制器/操作以及参数查询字符串在我的服务器上创建pdf 这很有效。但是,当他们按下此按钮时,我会显示一个微调器并禁用UI(“BlockAndSpin”功能)。我想打开隐藏微调器,并在下载pdf后重新启用ui 当我在Chrome和FF中调试时,我的onload方法从未被命中。我还尝试将onload属性添加到ifram

我在这里看到了一些关于iframe onload的类似问题,但是没有任何东西适合我

我有一个隐藏的iframe,仅用于用户下载在我的服务器上动态创建的pdf。当用户单击按钮时,通过指向控制器/操作以及参数查询字符串在我的服务器上创建pdf

这很有效。但是,当他们按下此按钮时,我会显示一个微调器并禁用UI(“BlockAndSpin”功能)。我想打开隐藏微调器,并在下载pdf后重新启用ui

当我在Chrome和FF中调试时,我的onload方法从未被命中。我还尝试将onload属性添加到iframe本身,但也没有成功。文件将下载,但UI保持不变,并且不会触发onload事件

js

html



显然这是不可能的。我的响应是用户下载一个.pdf文件,并且没有将任何内容加载到iframe本身,因此它不会触发事件。我必须回顾一下这是如何做到的。

我遇到了一个类似的问题,它附加到隐藏的iframe上的消息。IE似乎不喜欢使用“隐藏”(显示:无)iFrame进行跨域通信


我的解决方法是将iframe设置为一个绝对位置,左值为-9999px。然后它被有效地隐藏起来,你可以附加到它上

只是一个建议-如果AddOrDownload是一个页面-或者可以被一个页面包装,那么您的onload方法将被放置在那里。一个快速显示则会显示其他内容-
iframe
确实调用由其
onload
属性附加的
onload
处理程序。重新检查代码是否存在其他问题。1)返回的不是页面,而是pdf文件。2) 如果我注释掉实际的下载src,它是有效的——但它必须与下载相关的其他内容相关。
function downloadPOS(id) {
    var ifrm = document.getElementById(id)
    BlockAndSpin(true);
    ifrm.src = "/staticPOS/AddOrDownload" + GetPosQueryString();
    ifrm.onload = function () {
        BlockAndSpin(false);
    }
}
<iframe id="dlFrame" onload="BlockAndSpin(false);" style="display: none"></iframe>