chrome 与 IE11 中的 iframe onload

iframe onload in chrome vs IE11

我一直在使用 Chrome 编写我的第一个 Web 应用程序(因为内置的 Inspect 工具非常简洁),在我在 IE11 中测试之前一切正常。

它基本上是一个用于上传文件的表单和 iframe(但在代码片段中,我只是通过删除所有内容来关注行为的最小再现)。

行为是在 Chrome 我点击 "Submit" 并且表单触发 iframe onload 事件和 运行 一些代码。在 IE11 中,onload 在页面加载时触发,点击提交按钮时触发两次。

看来我应该使用其他事件处理程序,但不确定要捕获什么。我尝试了 onsubmit,但它什么也没做。

来自 html 块的代码:

<form enctype = "multipart/form-data" target="upload-iframe">
  <input type = "submit" />
</form>
<iframe name="upload-iframe" id="myFrame" hidden="hidden"></iframe>

<script type="text/javascript">
  var iframe = document.getElementById('myFrame');
  iframe.onload = function() {
    alert("I'm doing something");
  }
</script>

谢谢!

我试了一下,最终发现通过将 onload 块包装到 jQuery $(document).ready(function() {...});将其延迟到页面加载后,它会处理页面加载时加载事件触发器的问题,以及双触发器问题。