【问题标题】:jQuery input file click method and access denied on IEjQuery输入文件点击方法和IE上的访问被拒绝
【发布时间】:2011-08-31 14:11:59
【问题描述】:

我试图只使用一个按钮作为输入文件,它在 Firefox、Chrome、Safari 中运行良好,但在 IE 中却不行……提交表单时我总是收到“访问被拒绝”。

代码:

$('#input_file').click();

有真正的解决方法吗?我在 google 上浪费了大约 2 个小时,但我找不到它。

【问题讨论】:

标签: javascript jquery internet-explorer access-denied input-type-file


【解决方案1】:

我找到了解决方法。 将按钮包裹在标签标签中,如下所示:

<label for="fileinput"><div class="button">Upload file</div></label>


<form>
  <input id="fileinput" name="file" type="file">
</form>

点击标签将触发文件输入,不会使 Internet Explorer 中的表单失效 (在 IE9 和 IE10 中测试)

编辑:将此代码提供给 IE,并为其他浏览器保留 javascript 解决方案。点击标签时Firefox不会触发文件输入字段。

【讨论】:

    【解决方案2】:

    我曾经看过这段代码,我不记得在哪里,但它是一种解决方法

      if ($.browser.msie) {
            // IE suspends timeouts until after the file dialog closes
            $flUpload.click(function (event) {
                setTimeout(function () {
                    changeFunc();
                }, 0);
            });
        }
        else {
            // All other browsers behave
            $flUpload.change(changeFunc);
        }
    

    【讨论】:

      【解决方案3】:

      IE 的安全沙盒“功能”。没有办法绕过它。对不起。我使用JQuery文件输入,但仍然要检测IE并使用IE基本输入,我花了很多时间寻找答案并没有找到任何答案。您可以使用闪存,这是uploadify 所做的以绕过 IE 的安全性。我推荐它,它是一个非常好的插件。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-03-26
        • 2012-03-13
        • 2013-08-19
        • 1970-01-01
        • 2011-07-02
        • 2012-08-30
        • 2011-09-26
        • 2012-05-20
        相关资源
        最近更新 更多