<?xml version="1.0" encoding="utf-8"?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Selection drag and drop: allowed effects 'copy','copyMove','invalid'</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','all','uninitialized'], i = 0;
function selectText()
  {window.getSelection().selectAllChildren(document.querySelector('p'))}
function dropSelection(event)
  {event.target.appendChild(document.createTextNode((event.dataTransfer.dropEffect == 'copy' &amp;&amp; event.dataTransfer.effectAllowed == effects[i])?' PASS ':' FAIL '));
  i = (i + 1)%3;
  selectText();}
function start(event)
  {event.dataTransfer.effectAllowed = effects[i]}
</script>
</head>
<body onload="selectText()">
<p ondragstart="start(event)">Drag me</p>
<div ondragenter="event.preventDefault()" ondragover="return false" ondrop="dropSelection(event)"/>
<div ondragenter="event.preventDefault()" ondragover="return false" ondrop="dropSelection(event)"/>
<div ondragenter="event.preventDefault()" ondragover="return false" ondrop="dropSelection(event)"/>
<p>You should be able to drag selection and drop it onto any of the green boxes.</p>
</body>
</html>
