PDA

View Full Version : firefox & mouse position


webmigit
05-16-2005, 08:25 PM
I've searched all over and can't find an answer to this, but I'm trying to be able to detect the mouse position and cannot figure out any means.

I've tried event.anything and e.everything suggested anywhere and nothing will return a number of any kind, but this code works perfect in IE.

function showObject() {
document.getElementById('containerFrame').style.left = document.body.scrollLeft + (event.clientX - 5) + 'px';
document.getElementById('containerFrame').style.top = document.body.scrollTop + (event.clientY - 5) + 'px';
document.getElementById('containerDiv').style.left = document.body.scrollLeft + (event.clientX - 5) + 'px';
document.getElementById('containerDiv').style.top = document.body.scrollTop + (event.clientY - 5) + 'px';
document.getElementById('containerFrame').style.width = document.getElementById('containerDiv').offsetWidth + 'px';
document.getElementById('containerFrame').style.height = document.getElementById('containerDiv').offsetHeight + 'px';
document.getElementById('containerDiv').style.display = '';
document.getElementById('containerFrame').style.display = '';
}

Can someone help?

dumpfi
05-16-2005, 08:42 PM
e.pageY (FF) = window.event.clientY + document.body.scrollTop (IE)
e.pageX (FF) = window.event.clientX + document.body.scrollLeft (IE)

e represents the event object, that is passed to your event function.

Your function has no arguments and thus there is no event object. Change it to
showObject(e) { ... }
dumpfi

webmigit
05-17-2005, 06:00 PM
Thanks,

It didn't work, but I'm sure that's my error somehow.. Here's my js..

function showObject(e) {
alert('hi');
document.getElementById('containerFrame').style.left = document.body.scrollLeft + (event.clientX - 5) + 'px';
document.getElementById('containerFrame').style.top = document.body.scrollTop + (event.clientY - 5) + 'px';
document.getElementById('containerDiv').style.left = document.body.scrollLeft + (event.clientX - 5) + 'px';
document.getElementById('containerDiv').style.top = document.body.scrollTop + (event.clientY - 5) + 'px';
document.getElementById('containerFrame').style.width = document.getElementById('containerDiv').offsetWidth + 'px';
document.getElementById('containerFrame').style.height = document.getElementById('containerDiv').offsetHeight + 'px';
document.getElementById('containerDiv').style.display = '';
document.getElementById('containerFrame').style.display = '';
}

var tstring='';
function tblPop(userID,userName) {
tblgen = '\n <table cellpadding="4" width="150" cellspacing="0" bgcolor="white" style="border: solid 1px black">';
tblgen = tblgen + '\n <tr><td>';
tblgen = tblgen + '\n <b>' + userName + '</b>';
tblgen = tblgen + '\n </td></tr>';
...js generated table rows...
tblgen = tblgen + '\n </table>';
showObject();
document.getElementById('containerDiv').innerHTML = tblgen;
tstring='';
}

I've tried commenting all the positioning so there are no active calls to event just to see if I could get the 'hi' alert and I can't. I've tried changing the call to showObject(); from showObject(); to showObject(e); or showObject(event); just to see if I misunderstood.