Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript HTML5拖放-Firefox正在重定向_Javascript_Html_Firefox_Drag And Drop - Fatal编程技术网

Javascript HTML5拖放-Firefox正在重定向

Javascript HTML5拖放-Firefox正在重定向,javascript,html,firefox,drag-and-drop,Javascript,Html,Firefox,Drag And Drop,我试图在我的应用程序中实现html5的拖放功能,但Firefox总是被重定向到拖放图像的源。我正在使用e.stopPropagation()。在Chromium中,一切都按预期进行。奇怪。。。 代码如下: DuOS 0.0.0 window.clickedIcons=Array(); window.draggedIcon={}; window.draggedIcon.offset=Array(); window.draggedIcon.element=null; //波希波瓦尼 函数拖动_开始

我试图在我的应用程序中实现html5的拖放功能,但Firefox总是被重定向到拖放图像的源。我正在使用
e.stopPropagation()
。在Chromium中,一切都按预期进行。奇怪。。。 代码如下:


DuOS 0.0.0
window.clickedIcons=Array();
window.draggedIcon={};
window.draggedIcon.offset=Array();
window.draggedIcon.element=null;
//波希波瓦尼
函数拖动_开始(e){
window.draggedIcon.element=e.target;
event.dataTransfer.effectAllowed='copyMove';
event.dataTransfer.setData('text/plain','hola');//hack
var style=window.getComputedStyle(event.target,null);
window.draggedIcon.offset[0]=parseInt(style.getPropertyValue(“左”),10)-event.clientX;console.log(window.draggedIcon.offset[0]);
window.draggedIcon.offset[1]=parseInt(style.getPropertyValue(“top”),10)-event.clientY;console.log(window.draggedIcon.offset[1]);
window.draggedIcon.element=event.target;
}
函数拖过(e){
e、 预防默认值();
返回false;
}
功能下降(e){
window.draggedIcon.element.style.left=(event.clientX+window.draggedIcon.offset[0])+'px';
window.draggedIcon.element.style.top=(event.clientY+window.draggedIcon.offset[1])+'px';
window.draggedIcon.element.style.visibility='visible';
window.draggedIcon.element=null;
如果(e.stopPropagation){e.stopPropagation();}
返回false;
}
var xresult=document.evaluate('//body/*[@class=“desktop”]/*[@class=“icon”]',document,null,XPathResult.ANY_TYPE,null);
var dm=xresult.iterateNext();
while(dm){
dm.addEventListener('dragstart',drag_start,false);
dm.addEventListener('click',click,false);
dm=xresult.iterateNext();
}
document.body.addEventListener('dragover',drag_over,true);
document.body.addEventListener('drop',drop,true);
感谢您的帮助,m93a。

您需要:


谢谢,你真的帮了我:D
preventDefault
完成了这项工作!但是有人能解释一下为什么删除会触发Firefox上的重定向吗?@MatthieuRiegler Wild guess:将文件放到Firefox中会导航到该文件,这就是为什么默认设置是导航到被删除的URL。在我的例子中,
drag
之前调用了
event.dataTransfer.setData('text/plain',“css”)
,FF试图打开URL
“css”
function drop(e) {
    if(e.preventDefault) { e.preventDefault(); }
    if(e.stopPropagation) { e.stopPropagation(); }
    window.draggedIcon.element.style.left = (event.clientX + window.draggedIcon.offset[0]) + 'px';
    window.draggedIcon.element.style.top  = (event.clientY + window.draggedIcon.offset[1]) + 'px';
    window.draggedIcon.element.style.visibility = 'visible';
    window.draggedIcon.element = null;
    return false;
}