我有一些简单的JavaScript,决定在那里点击这里发生在浏览器中:确定鼠标点击所有的屏幕分辨率
var clickDoc = (document.documentElement != undefined && document.documentElement.clientHeight != 0) ? document.documentElement : document.body;
var x = evt.clientX;
var y = evt.clientY;
var w = clickDoc.clientWidth != undefined ? clickDoc.clientWidth : window.innerWidth;
var h = clickDoc.clientHeight != undefined ? clickDoc.clientHeight : window.innerHeight;
var scrollx = window.pageXOffset == undefined ? clickDoc.scrollLeft : window.pageXOffset;
var scrolly = window.pageYOffset == undefined ? clickDoc.scrollTop : window.pageYOffset;
params = '&x=' + (x + scrollx) + '&y=' + (y + scrolly) + '&w=' + w + '&random=' + Date();
所有这些数据都被存储在一个数据库。稍后我会检索它并显示该页面上发生的所有点击。如果我在一个分辨率中完成所有的点击操作,并且以相同的分辨率显示回来,这可以正常工作,但情况并非如此。可能会使用大量的分辨率。
在我的测试案例中,我点击屏幕分辨率为1260x1080的屏幕。我检索了所有数据并以相同的分辨率显示。但是,当我使用不同的显示器(尝试1024x768和1920x1080。标记转移到不正确的点
我的问题是,如果我存储客户端的宽度和高度,和点击x/y位置如果3个不同屏幕分辨率的用户点击同一个单词,第4个用户会查看所有这些点击发生的位置,我如何正确绘制x/y位置以显示每个人都在同一空间点击,无论分辨率是多少?
如果这属于一个更好的部分,请让我知道为好。
:::编辑:::应用Brock的建议后,我附上两张截图,我点击了在每个段落的开头部分以不同的分辨率表示“If”字样。当以这两种分辨率观看时,以相同分辨率发生的点击直接在该词上,当分辨率更高或更低时,它们分别向右或向左移动。
http://img291.imageshack.us/img291/5682/1260x1080.png http://img27.imageshack.us/img27/8950/1920x1080c.png
我不知道你的要求,但如果这对你是可能的,考虑记录DOM元素的路径被点击而不是鼠标的位置。 – 2010-06-12 21:22:35
从这些截图中,它看起来像边距是不同的。张贴整个屏幕截图或 - 更好地 - 链接到页面。我会在下面更新我的答案。 – 2010-06-12 23:12:37