Are rangeParent/rangeOffset gecko-only? It's not part of any W3C spec is it? I realize you may only be concerned with FF for now, and that's fine, but I'm just curious.
Here is what I've experimented with - but I get the same results as you did:
Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Range and createEvent Tests</title>
<style type='text/css'>
span {
cursor:pointer;
border-bottom:1px dotted red;
}
</style>
<script type='text/javascript'>
var SX, SY, CX, CY;
window.onload = function()
{
// window.onclick = winOnClick;
document.getElementById('s1').onclick = spanOnClick;
document.getElementById('s2').onmouseover = simulateClick;
}
function winOnClick(e)
{
var s = 'winOnClick\n\n' + 'e.rangeParent: ' + e.rangeParent + '\ne.rangeOffset: ' + e.rangeOffset + '\ne.rangeParent.parentNode.id: ' + e.rangeParent.parentNode.id;
s += '\n\ne.screenX: ' + e.screenX + '\ne.screenY: ' + e.screenY + '\n\ne.clientX: ' + e.clientX + '\ne.clientY: ' + e.clientY;
alert(s);
}
function spanOnClick(e)
{
SX = e.screenX;
SY = e.screenY;
CX = e.clientX;
CY = e.clientY;
var s = 'spanOnClick\n\n' + 'e.rangeParent: ' + e.rangeParent + '\ne.rangeOffset: ' + e.rangeOffset + '\ne.rangeParent.parentNode.id: ' + e.rangeParent.parentNode.id;
s += '\n\ne.screenX: ' + e.screenX + '\ne.screenY: ' + e.screenY + '\n\ne.clientX: ' + e.clientX + '\ne.clientY: ' + e.clientY;
alert(s);
}
function simulateClick()
{
var sx = SX;
var sy = SY;
var cx = CX;
var cy = CY;
var s1 = document.getElementById('s1');
var s = 'simulateClick\n\n';
//s + 's1.offsetLeft: ' + s1.offsetLeft + '\ns1.offsetTop: ' + s1.offsetTop + '\n\nsx: ' + sx + '\nsy: ' + sy + '\n\ncx: ' + cx + '\ncy: ' + cy;
alert(s);
var ev = document.createEvent("MouseEvents");
ev.initMouseEvent("click", true, true, window, 1, sx, sy, cx, cy, false, false, false, false, 0, null);
s1.dispatchEvent(ev);
// window.dispatchEvent(ev);
}
</script>
</head>
<body>
<h1>Range and createEvent Tests</h1>
<h3>Vivamus Pellentesque</h3>
<p><span id='s1'>s1: Click me first.</span> Nulla a lacus. Nulla facilisi. Lorem ipsum dolor sit amet, <span id='s2'>s2: Then click me.</span> consectetuer adipiscing elit. Fusce pulvinar lobortis purus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</p>
</body>
</html>
Bookmarks