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

时间:2015-01-21 15:27:21

标签: html5 drag-and-drop draggable internet-explorer-11

有人知道为什么使用jsFiddle运行this代码片段在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>

1 个答案:

答案 0 :(得分:1)

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

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