【问题标题】:iframe onload in chrome vs IE11chrome vs IE11中的iframe onload
【发布时间】:2019-08-23 21:32:20
【问题描述】:

我一直在使用 Chrome 编写我的第一个 web 应用程序(因为简洁的内置检查工具)并且一切都很好,直到我在 IE11 中进行测试。

它基本上是一个用于上传文件的表单和 iframe(但在 sn-p 中,我只是专注于通过删减所有内容来最小化行为的再现)。

行为是在 Chrome 中我单击“提交”并且表单触发 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>

谢谢!

【问题讨论】:

  • 注意:在提交时,从我的本地主机运行时它会触发两次,但是当我在 StackOverflow 工具中单击提交时,我看到它只会触发一次。它仍然会在 SO 工具中的页面加载时触发。

标签: html forms iframe internet-explorer-11


【解决方案1】:

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

【讨论】:

  • 如果解决了您的问题,我建议您将解决方案标记为答案。这对遇到相同问题的人会有所帮助。
猜你喜欢
  • 1970-01-01
  • 2016-11-17
  • 2012-04-08
  • 2012-04-05
  • 2014-12-27
  • 1970-01-01
  • 2011-08-19
  • 1970-01-01
  • 2012-09-06
相关资源
最近更新 更多