4

我们正在尝试使用隐藏的 iframe 上传文件,并且脚本在除 IE(9) 之外的所有浏览器中运行。

  • 用户点击链接
  • 链接触发文件输入打开
  • 文件输入更改触发表单提交
  • 表单提交到 iframe

IE9 开发者工具返回以下错误信息:

SCRIPT5: Access is denied.
jquery-latest.js, line 2977 character 6

环顾四周,这似乎是与 jQuerychange()事件一起发生的错误。相当肯定它一定是一个简单的解决方案......如果你能提供帮助,非常感谢!

HTML

<form class="hidden" action="index.php?upload" method="POST" id="myForm" enctype="multipart/form-data" target="hidden_iframe">
    <input type="file" name="userfile" id="userFile">
    <input type="submit">
</form>

<iframe id="hidden_iframe" class="hidden" name="hidden_iframe" src="inc/temp.html"></iframe>

Javascript

$('#fake').on("click",function(e){
    e.preventDefault();
    $('#userFile').click();
    return false;
});
$('#real').on("change",function(e){
    e.preventDefault();
    $("#myForm").submit();
});
4

2 回答 2

1

这是 IE 安全设​​置。只需转到设置-> Internet 选项-> 安全-> 自定义级别,然后更改“其他”下的安全设置,将“跨域访问数据源”设置为启用。

编辑:

我刚看到有什么问题。您正在触发文件上传,但不允许这样做。您需要让用户手动单击文件选择器按钮。

于 2012-11-12T12:08:48.023 回答
0

也许您应该完全考虑替代解决方案?

现在通过隐藏的 iframe 上传并不是最好的方法。

看看这个很棒的库:http ://www.plupload.com/

于 2012-11-12T12:18:56.023 回答