jQuery隐藏iframe文件上传

时间:2012-11-12 11:57:35

标签: javascript jquery html iframe

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

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

IE9开发人员工具会返回以下错误消息:

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

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

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();
});

2 个答案:

答案 0 :(得分:1)

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

编辑:

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

答案 1 :(得分:0)

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

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

请看一下这个很棒的lib:http://www.plupload.com/