对于目标表单提交,iframe onload被触发两次

时间:2014-04-26 23:29:53

标签: html iframe

我正在使用iframe上传带有ajax感觉的图片,我使用unload来触发加载预览并隐藏加载gif的javascript函数,但我的问题是该函数在页面加载时加载ONCE提交表单时的ONCE和ONCE。我想不出另一个可行的处理程序?或者还有另一种选择吗?

<form id="profileForm" method="post" action="build/parsers/upload-photo.php" enctype="multipart/form-data" target="upload" onsubmit="startPhoto();">
    <input type="file" name="photo" id="profileSelect" onchange="document.getElementById('profileForm').submit();" />
    <button id="profileUpload" onclick="document.getElementById('profileSelect').click(); return false;" type="submit">Upload</button>
 </form>

 <iframe name="upload" id="upload" onload="stopPhoto();"></iframe>

2 个答案:

答案 0 :(得分:0)

它被正确触发两次,因为iframe加载了两次。正如您所注意到的,当您发布到它时它会再次加载。您可以通过在表单的onload处理程序中设置iframe的onsubmit处理程序,使其按预期工作。这样,您的函数将仅在表单提交后在iframe加载中触发。

答案 1 :(得分:0)

我有一个类似的问题,即iframe onload事件在Chrome中的表单提交上按预期方式触发/触发,但是在IE11表单提交上却触发了两次,以及在页面加载时触发了。检查并查看是否可以解决您的问题?

iframe onload in chrome vs IE11