想要在 iframe 未加载或已加载时调用函数吗?

2023-11-21

我有一个iframe在我的页面中。如果iframe无法加载,希望加载alert消息“找不到pdf“如果iframe确实加载,应该alert "pdf打开".

有谁知道如何实现这一目标?


因此,我们的想法是使用 Ajax 请求来“测试”URL。 Ajax 请求使您能够绑定“成功”和“错误”处理程序 - 与此不同<iframe>仅提供“加载”处理程序的元素。

当然,Ajax 请求受到同源策略的限制(除非 Web 服务器启用 CORS),但您声明 PDF 位于同一域中,因此不应该有任何问题。

另外,您声明您使用 Mootools 库 - 我使用 jQuery,因此我只能为您提供 jQuery 解决方案,但由于我们正在使用“成功”和“错误”处理程序发出简单的 Ajax 请求,因此您应该能够轻松地基于我的 jQuery 解决方案重新创建 Mootools 解决方案。

因此,给定一个 iframe 和一个 URL:

var iframe = $( '#iframe' )[0]; // reference to IFRAME element
var url = 'files/document1.pdf';

Ajax 请求:

$.get( url, function () {
    iframe.onload = function () { alert( 'PDF opened!' ); };
    iframe.src = url;
}).error( function () { alert( 'PDF not found' ); });

成功演示: http://jsfiddle.net/CZWdL/1/show/
错误演示: http://jsfiddle.net/CZWdL/2/show/

因此,如果 Ajax 请求触发“错误”事件,我们只需立即发出“未找到”消息警报即可。然而,如果 Ajax 请求触发“成功”事件,我们会为 IFRAME 元素分配一个“加载”处理程序(此“加载”处理程序最终将提醒“已加载”消息),并将 URL 设置为其src手动属性。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

想要在 iframe 未加载或已加载时调用函数吗? 的相关文章

随机推荐