Files
elog/scripts/dnd.js
T
2015-03-31 17:56:21 +02:00

88 lines
2.0 KiB
JavaScript

/********************************************************************\
Name: dnd.js
Created by: Stefan Ritt
Contents: JavaScript code for Drag & Drop interface
\********************************************************************/
function XMLHttpRequestGeneric()
{
var request;
try {
request = new XMLHttpRequest(); // Firefox, Opera 8.0+, Safari
}
catch (e) {
try {
request = new ActiveXObject('Msxml2.XMLHTTP'); // Internet Explorer
}
catch (e) {
try {
request = new ActiveXObject('Microsoft.XMLHTTP');
}
catch (e) {
alert('Your browser does not support AJAX!');
return undefined;
}
}
}
return request;
}
// getElementById
function $id(id) {
return document.getElementById(id);
}
function drag(e)
{
console.log('drag');
}
function dragover(e)
{
e.dataTransfer.dropEffect = 'copy';
e.preventDefault();
}
function dragenter(e)
{
e.stopPropagation();
e.preventDefault();
$id('holder').style.border = '6px dashed #0c0';
console.log('dragenter');
}
function dragleave(e)
{
e.stopPropagation();
e.preventDefault();
$id('holder').style.border = '6px dashed #ccc';
console.log('dragleave');
}
function drop(e)
{
e.stopPropagation();
e.preventDefault();
console.log('drop');
}
function dndInit()
{
document.body.addEventListener('dragover', function(e) {
e.preventDefault();
});
document.body.addEventListener('drop', function(e) {
e.preventDefault();
});
d = $id('holder');
d.addEventListener('drag', drag);
d.addEventListener('dragover', dragover);
d.addEventListener('dragenter', dragenter);
d.addEventListener('dragleave', dragleave);
d.addEventListener('drop', drop);
}