【问题标题】:jQuery hidden iframe File uploadjQuery隐藏iframe文件上传
【发布时间】:2012-11-12 11:57:34
【问题描述】:

我们正在尝试使用隐藏的 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();
});

【问题讨论】:

  • 您不应使用已弃用的.live(),而应使用较新的.on()
  • 感谢提醒!但不能解决问题。

标签: javascript jquery html iframe


【解决方案1】:

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

编辑:

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

【讨论】:

  • 这不是“解决”问题的好方法,因为您不能期望每个用户都更改他们的设置。 你知道这有什么变通办法吗?
  • 仅供参考,这并不能解决问题。
  • 事实上,只有当您将文件上传到与运行脚本的域不同的域时,才会发生这种情况。所以这意味着没有弹出窗口,也没有本地主机到服务器的上传(显然没有跨站点上传)
  • 同一个目录,同一个服务器。有什么想法吗?
  • 是的 - 这就是问题中概述的问题,但我希望这个触发 - 可能没有错误?
【解决方案2】:

也许您应该完全考虑另一种解决方案?

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

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

【讨论】:

  • 可能是一个解决方案;完全不确定如何在相同的上下文中使用它(例如,我们正在使用轮询上传栏)。
  • 使用 plupload,您将获得一个真正的上传栏,而不是轮询几乎真实的进度条。查看示例。他们会把你吹走!他们甚至有拖放支持(如 gmail 等)。你很快就会让它运行起来。不,我不隶属于该项目:)
  • 我使用自定义示例来实现:plupload.com/example_custom.php
  • 非常感谢! :) 我将发布最终脚本以供其他人进一步帮助。
  • 在正常的$.post() 中,您可以提供将在请求完成时执行的回调函数。但是,对于 plupload,他们已经包装了东西,并在上传完成时引发了一个事件。您可以像这样使用它uploader.bind('FileUploaded', function(up, file) { console.log(up); console.log(file); })。文档:plupload.com/plupload/docs/api/…
猜你喜欢
  • 2012-07-07
  • 2011-04-09
  • 1970-01-01
  • 1970-01-01
  • 2011-12-16
  • 1970-01-01
  • 2012-06-02
  • 2011-07-13
  • 1970-01-01
相关资源
最近更新 更多