如何在注入时停止空iframe触发加载事件?

时间:2013-03-29 14:28:39

标签: javascript html dom javascript-events

using an empty frameto handle pseudo-asynchronous form submission。对于那些不熟悉该技术的人,我们的想法是在表单的name属性中引用框架的target属性,以便表单的action的URI在框架中解析并且用户体验不会中断。

要向用户反馈,我需要使用脚本来监听表单上的loaderror事件,因为这有效地使整个UX脚本依赖,我只是注入框架并通过脚本添加表单的目标引用。

问题是框架会在注入页面后立即触发加载事件:default behaviour

我可以使用jQuery的one方法和e.stopImmediatePropagation()here)缓解此问题,或者我可以注入框架,然后绑定事件({ {3}})。但这两个选项都非常直观 - 代码当然需要评论以避免看起来像是一个错误。

TL; DR:有没有办法可以修改或限定iframe以阻止它在注射时触发错误的加载事件?

我尝试了什么

  1. 没有src属性
  2. src设置为about:blank(上面隐含的内容)
  3. src设置为#
  4. src设置为javascript:void 0
  5. src设置为空数据URI data:text/plain;base64,;
  6. srcdoc设置为空或接近空字符串

1 个答案:

答案 0 :(得分:0)

First put the iframe into the document, then register the listener:

var e = $('<iframe>');
e.appendTo('body');
e.on('load', function(){
  alert('Loaded!')
});