javascript - Jquery 文件拖放给我一个 "insecure operation"错误

标签 javascript jquery

Note:

The answers & comments below reflect the state of legacy browsers in 2009. Now you can actually set the value of the file input element dynamically/programatically using JavaScript in 2017.

See the answer in this question for details as well as a demo:
How to set file input value programatically (i.e.: when drag-dropping files)?

我正在尝试使用 Jquery 实现上传图像的拖放功能。

这是我的代码:

上传.html

    <form id ="image_upload_form" action="" method="post" enctype="multipart/form-data">

        <input id="id_image" type="file" name="image">
        <input type="submit" value="Upload" />

    </form>

    <div id="drop_field"></div>

image_upload.js

$(document).ready(function() {
    var drop_field = $("#drop_field");
    drop_field.bind('dragover', file_drag_over);
    drop_field.bind('drop', file_select);   
});



function file_select(event) {
    event.stopPropagation();
    event.preventDefault();

    var file = event.originalEvent.dataTransfer.files [0];
    $("#id_image").val(file);
}



function file_drag_over(event) {
    event.stopPropagation();
    event.preventDefault();

    event.originalEvent.dataTransfer.dropEffect = "copy";    
}

一切正常,除了当我将图像文件拖放到字段上时,它给了我一个安全错误:

SecurityError: The operation is insecure.
    this.value = val;

我猜发生这种情况是因为我正在尝试修改文件输入字段的“值”属性。上传文件而不出现此安全错误的正确方法是什么?

谢谢!!

最佳答案

该错误是因为您正在尝试设置文件输入类型的值,由于安全原因,无法设置文件输入类型的值。

另请阅读this question和来自 MDN

关于javascript - Jquery 文件拖放给我一个 "insecure operation"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18308120/

相关文章:

javascript - 在nodejs中从客户端发送html到浏览器

javascript - 更改父类时更改子类的CSS属性

javascript - 为什么这个子字符串在中文中不起作用?

javascript - JS - canvas.toDataURL 失败

javascript - Uncaught ReferenceError : height is not defined - Backbone. js

javascript - jQuery 验证自定义方法不显示消息

javascript - 创建带参数的链接标签

javascript - React useEffect 清理函数意外调用

javascript - Jquery .Ajax 悬停问题

javascript - 无法跟踪输入值的变化