【发布时间】:2016-08-31 17:29:13
【问题描述】:
我有一个包含常规输入和文件输入的 HTML 表单。当用户选择一个或多个要上传的文件时,我立即将表单的 target 属性更改为页面上隐藏 iframe 的 name 属性,并将表单的 action 属性更改为脚本我想将文件上传请求发送到。
然后我从请求的脚本中将文件上传到服务器,一旦脚本结束,iframe 的onload 事件就会触发,之后我会进行各种界面更改。
一切都正确上传,但问题是 iframe 请求似乎会导致页面请求被添加到浏览器历史记录中,这会产生意想不到的后果。目前我发现了以下两个问题:
- 如果我上传一个文件,然后再上传另一个文件,然后 点击后退按钮,浏览器停留在表单上而不是继续 返回表单前显示的页面。
- 如果我上传一个文件然后点击 后退按钮,浏览器更正回到上一页, 但是如果我然后点击前进按钮返回表单,对于 无论出于何种原因,在 iframe 中执行的用于上传文件的脚本会在表单加载时立即被调用,这会导致其他意想不到的副作用。
重点是,添加到浏览器历史记录中的 iframe 请求似乎会导致各种问题,如果可能的话,我想避免这种情况。有什么办法可以阻止这一切的发生?
我还应该注意,我目前只在最新版本的 Chrome 中进行开发,但我使用的任何解决方案都必须返回到 IE8。
【问题讨论】:
标签: javascript forms iframe file-upload form-submit