<!doctype html>
<title>Alert during dragend</title>
<style>
  body > div {
    height: 200px;
    width: 200px;
    background-color: orange;
    display: inline-block;
  }
  body > div + div {
    background-color: navy;
  }
</style>
<script type="text/javascript">
window.onload = function () {
	var orange = document.getElementsByTagName('div')[0], blue = document.getElementsByTagName('div')[1], hasfired = false;
	orange.ondragstart = function (e) {
		e.dataTransfer.setData('text','PASS');
		e.dataTransfer.effectAllowed = 'all';
	};
	blue.ondragenter = blue.ondragover = function (e) {
		e.preventDefault();
	};
	blue.ondrop = function (e) {
		e.preventDefault();
	};
	orange.ondragend = function (e) {
		if( hasfired ) { return; }
		hasfired = true;
		alert('JS alert');
	};
};
</script>
<div draggable="true"></div>
<div></div>

<ol>
	<li>Drag the orange square over the blue square, then release it.</li>
	<li>An alert may appear - release the mouse over the page, not the dialog. Dismiss it (you may need to use keyboard or mouse gestures such as gesture-down,gesture-right).</li>
	<li>The mouse cursor may continue to show that a drag is in operation. If so, attempt to select some of this text with the mouse before continuing to the text step.</li>
	<li>Fail if the mouse continues to show that a drag is in operation.</li>
	<li>Try to select some text in this sentence. Fail if it is not possible.</li>
	<li>Try to drag the orange square downwards. Fail if it is not possible.</li>
</ol>