有人知道为什么使用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>
答案 0 :(得分:1)
读取本地文件系统通常不是浏览器允许您通过file://
协议执行的操作。我希望你能从浏览器中看到某种类型的提示,或者在控制台中看到一条消息,表明情况就是这样。
如果您希望在本地访问项目以进行测试,我建议您查看IIS Express,WampServer / MAMP或http-server module for Node.js。它们都很容易设置,并允许您快速提供来自任何目录的内容,就好像它是一个实时网站。