我在这里看到了一些关于 iframe onload 的类似问题,但没有什么对我有用。
我有一个隐藏的 iframe,仅用于用户下载在我的服务器上动态创建的 pdf。当用户单击按钮时,通过指向控制器/操作以及参数查询字符串在我的服务器上创建 pdf。
这很好用。但是,当他们按下此按钮(“BlockAndSpin”功能)时,我会显示一个微调器并禁用 UI。我想在下载 pdf 后打开隐藏微调器并重新启用 ui。
当我在 Chrome 和 FF 中调试时,我的 onload 方法永远不会被命中。我还尝试将 onload 属性添加到 iframe 本身,但这也不起作用。文件下载,但 UI 保持不变并且 onload 事件不会触发。
js
function downloadPOS(id) {
var ifrm = document.getElementById(id)
BlockAndSpin(true);
ifrm.src = "/staticPOS/AddOrDownload" + GetPosQueryString();
ifrm.onload = function () {
BlockAndSpin(false);
}
}
html
<iframe id="dlFrame" onload="BlockAndSpin(false);" style="display: none"></iframe>
显然这是做不到的。我的回应是用户下载了一个 .pdf 文件,并且没有将任何内容加载到 iframe 本身中,因此它永远不会触发事件。我将不得不重新审视这是如何完成的。