<html>
<head></head>
<body>
<div>
<input type="text" value="input text"><br>
<input type="text" value="edittext"><br>
<input unselectable="on" type="text" value="also edittext"><br>
<div><span
onmouseleave="mouseLeft(this)"
onmouseenter="mouseEntered(this)" >this is selectable text</span></div>
<div>
<span unselectable="on">this is nonselectable text</span></div>
<div id="result" ></div>
</div>
<script>
(function () {
var lastSel = null;
document.onselectstart = function () {
lastSel = window.event.srcElement;
}
window.mouseEntered = function (elem) {
if (lastSel === elem) {
result.innerHTML += "e";
document.onmouseup = null;
document.body.onselect = null;
}
}
window.mouseLeft = function (elem) {
if (lastSel === elem) {
result.innerHTML += "l";
var dup = document.selection.createRange().duplicate();
var j = true;
document.onmouseup = function () {
document.onmouseup = null;
document.body.onselect = null;
}
document.body.onselect = function () {
// scripted selection cannot be extended by user...
/*if (j) {
j = false;
result.innerHTML += "p";
// document.selection.empty();
dup.select();
j = true;
}*/
// cancelable according to MSDN, but doesn't work...
result.innerHTML += "s";
var e = window.event;
result.innerHTML += "[" + e.type + "]";
e.returnValue = false;
return false;
}
}
}
})();
</script>
</body>
</html>