5

我正在使用一个空框架来处理伪异步表单提交。对于那些不熟悉该技术的人来说,这个想法是name在表单的属性中引用框架的属性,以便表单的targetURIaction在框架中解析,并且不会中断用户体验。

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

问题是框​​架一旦被注入页面就会触发加载事件:默认行为

我可以使用 jQuery 的one方法和e.stopImmediatePropagation()这里)来缓解这种情况,或者我可以注入框架然后绑定事件(这里)。但是这两个选项都非常违反直觉——代码当然需要注释以避免看起来像一个错误。

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

我试过的

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

1 回答 1

0

先将 iframe 放入文档中,然后注册监听器:

var e = $('<iframe>');
e.appendTo('body');
e.on('load', function(){
  alert('Loaded!')
});
于 2013-03-29T14:31:55.213 回答