IE上的jQuery输入文件点击方法和访问被拒绝

时间:2011-08-31 14:12:00

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

我正在尝试仅使用一个按钮作为输入文件,它在Firefox,Chrome,Safari中工作正常但在IE中却没有...我在提交表单时总是得到“拒绝访问”。

代码:

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

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

3 个答案:

答案 0 :(得分:2)

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

<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不会触发文件输入字段。

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

IE的安全沙箱“功能”。没有办法解决它。抱歉。我使用JQuery文件输入,但仍然要检测IE并使用IE基本输入,我花了很多时间寻找答案而没有找到任何答案。你可以使用flash,uploadify可以解决IE的安全问题。我推荐它,它是一个非常好的插件。