Dropzone.js Drag&丢弃在IE10中不起作用

时间:2013-11-05 14:48:22

标签: javascript html5 internet-explorer-10 dropzone.js

我已经按照教程将普通表格与Dropzone结合使用https://github.com/enyo/dropzone/wiki/Combine-normal-form-with-Dropzone),结果页面在最新版Google Chrome中完美运行。

但是,当我在IE10中测试同一页面时拖放不起作用。可以单击放置区域,我可以将文件上传到服务器,从而正确初始化dropzone。只是拖放功能不起作用。

当我尝试在http://www.dropzonejs.com/上进行演示时,拖放工作在IE10中。

我已经检查了IE互联网选项,一切都已启用,我还将localhost添加到可信站点。

这是我的代码:

<script src="~/Scripts/dropzone.js"></script>
<script type="text/javascript">
    Dropzone.options.dropzoneForm = {
        autoProcessQueue: false,
        uploadMultiple: true,
        parallelUploads: 100,
        maxFiles: 100,
        addRemoveLinks: true,
        createImageThumbnails: false,

        // The setting up of the dropzone
        init: function() {
            var myDropzone = this;

            // First change the button to actually tell Dropzone to process the queue.
            this.element.querySelector("button[type=submit]").addEventListener("click", function(e) {
                // Make sure that the form isn't actually being sent.
                e.preventDefault();
                e.stopPropagation();
                myDropzone.processQueue();
            });
        }
    };
</script>

<form action="~/FileUpload/SaveUploadedFiles" method="post" enctype="multipart/form-data" class="dropzone" id="dropzoneForm">
    <div class="dropzone-previews"></div>
    <button type="submit">Submit data and files!</button>
</form>

当然,样式表也会添加到页面中。

我是否错过了某些配置,或者这是浏览器的问题?

3 个答案:

答案 0 :(得分:17)

事实证明,当我从Visual Studio以调试模式访问页面时,拖放不起作用。如果我从新打开的浏览器访问该页面,它可以正常工作。

根据线程http://social.msdn.microsoft.com/Forums/silverlight/en-US/383198a9-dbb4-4f94-8713-484e5bacb14b/dragdrop-not-active-during-debugging?forum=silverlightdevtools,如果使用不同的帐户/私有权执行Visual Studio和IE,则会发生这种情况。就我而言,Visual Studio以管理员身份运行。

由于我不需要在此页面上调试客户端脚本,因此在测试页面时,我将在新的IE中打开该站点。

答案 1 :(得分:2)

您必须并且在捆绑这些代码行

        // dropZone styles
        bundles.Add(new StyleBundle("~/Scripts/dropZone").Include(
                  "~/Scripts/dropzone/css/basic.css",
                  "~/Scripts/dropzone/css/dropzone.css"));

        // dropZone 
        bundles.Add(new ScriptBundle("~/Scripts/dropzone").Include(
                  "~/Scripts/dropzone/dropzone.js"));

在您的解决方案中注意与您的匹配的脚本路径 非常重要: (SOS) - css必须是第一个,然后是js文件,例如。

答案 2 :(得分:1)

检查您的头部,看看您是否强制与旧版本的IE兼容。开发人员将我们设置为IE = 9,并且每次在IE11中上载文件时都会导致500个内部服务器错误。