| <?xml version="1.0" encoding="utf-8"?> |
| <html xmlns="http://www.w3.org/1999/xhtml"> |
| <head> |
| <title>drofEffect after drop event is cancelled</title> |
| <style type="text/css"> |
| div |
| {display:inline-block; |
| vertical-align:top; |
| background-color:olive; |
| color:white; |
| padding:20px; |
| width:100px; |
| height:100px;} |
| div:nth-child(2) |
| {background-color:green;} |
| div:nth-child(3) |
| {background-color:teal;} |
| </style> |
| <script type="application/ecmascript"> |
| var effects = ['copy','move','link'], result = false, e = 0; |
| function selectText() |
| {window.getSelection().selectAllChildren(document.querySelector('p'))} |
| function dropSelection(event,element) |
| {event.preventDefault(); |
| e = element; |
| if(event.dataTransfer.dropEffect == effects[element]) |
| {result = true} |
| selectText();} |
| function endDrag(event) |
| {document.querySelectorAll('div')[e].appendChild(document.createTextNode((result && event.dataTransfer.dropEffect == effects[e])?' PASS ':' FAIL '));} |
| </script> |
| </head> |
| <body onload="selectText()"> |
| <div ondrop="dropSelection(event,0)" dropzone="copy string:text/plain"/> |
| <div ondrop="dropSelection(event,1)" dropzone="move string:text/plain"/> |
| <div ondrop="dropSelection(event,2)" dropzone="link string:text/plain"/> |
| <p ondragend="endDrag(event)">Drag me</p> |
| <p>You should be able to drag selection and drop it onto any of the green boxes.</p> |
| </body> |
| </html> |