如果页面在本地加载,则拖放在 IE 11 中不起作用

Drag and drop does not work in IE 11 if page loaded locally

有人知道为什么 运行 this 带有 jsFiddle 的代码片段在 IE 11 中可以正常工作,但当放在一起并从机器本地存储的文件中加载时却不能吗?是因为 IE 11 中的安全属性吗?如果可以,我该如何更改它们才能使用本地文件测试拖放?

function handleDragStart(e) {
    e.dataTransfer.setData("Text", "" + $(e.target).index());
}

function dragoveHandler(e) {
    if (e.preventDefault) {
        e.preventDefault(); // Necessary. Allows us to drop.
    }

    return false;
}

function handleDrop(e) {
    alert($(e.target).index());
    if (e.preventDefault) {
        e.preventDefault(); // Necessary. Stops redirect.
    }
    return false;
}
.div123
{
     border: 2px solid #666666;
     background-color: #ccc;
     margin-top: 50px;
     width: 200px;
     cursor: move;
    display: block;
    text-decoration: none;
    color: black;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<div id="columns">
          <a class="div123" href="#" draggable="true" ondragstart="handleDragStart(event)" ondrop="handleDrop(event)" ondragover="dragoveHandler(event)" onclick="return false;">Hello World</a>
          <a class="div123" href="#" draggable="true" ondragstart="handleDragStart(event)" ondrop="handleDrop(event)" ondragover="dragoveHandler(event)" onclick="return false;">HTML5 drag and drop</a>
          <a class="div123" href="#" draggable="true" ondragstart="handleDragStart(event)" ondrop="handleDrop(event)" ondragover="dragoveHandler(event)" onclick="return false;">W3 schools</a>
        </div>

读取本地文件系统通常不是浏览器允许您通过 file:// 协议执行的操作。我希望您能从浏览器中看到某种类型的提示,或者在控制台中看到一条消息表明是这种情况。

如果您希望在本地访问项目以进行测试,我建议您查看 IIS Express, WampServer/MAMP, or simply the http-server module for Node.js。它们都非常容易设置,并允许您快速提供来自任何目录的内容,就好像它是一个实时站点一样。