Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Drag and Drop in iframe

I'm trying to make web app that will allow user to drag div's in iframe element.

This is my current code in index.html :

<script type="text/javascript" src="http://code.jquery.com/jquery.min.js"></script>
<script>
    function onDrag(event){
        event.dataTransfer.setData('Text', 'Some content');
    }
</script>
<div id="items">
    <ul>
        <li><div draggable="true" ondrag="onDrag(event)">Content1</div></li>
        <li><div draggable="true" ondrag="onDrag(event)">Content2</div></li>
    </ul>
</div>
<iframe id="box" src="box.html">
</iframe>

And here is my code from box.html :

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8" />
    <title></title>
    <script>    
        function onDrop(event){
            event.target.innerHTML += event.dataTransfer.getData('Text');
            alert('Ok!');
        }
        function onDragOver(ev){
            ev.preventDefault();
        }
    </script>
</head>
<body ondragover="onDragOver(event)" ondrop="onDrop(event)">
</body>
</html>

Drag works, and I even get that alert from onDrop function, but the event.dataTransfer.getData('Text') is returning empty string, and I don't know why.

Thanks in advance

like image 671
Nikola Ninkovic Avatar asked Mar 17 '26 18:03

Nikola Ninkovic


1 Answers

You should set drag data in the dragstart event, not the drag event: http://jsfiddle.net/SVtzK/1/.

like image 100
pimvdb Avatar answered Mar 20 '26 07:03

pimvdb



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!