如何使用 Javascript 在浏览器中通过 X-Y 坐标定位?

Posted

技术标签:

【中文标题】如何使用 Javascript 在浏览器中通过 X-Y 坐标定位?【英文标题】:How do I use Javascript to locate by X-Y Coordinates in my browser? 【发布时间】:2010-09-09 05:19:46 【问题描述】:

我正在努力做到这一点,当用户向下滚动页面,单击链接,做他们需要做的任何事情,然后返回到带有链接的页面时,它们是相同的(xy ) 之前在浏览器中的位置。我该怎么做?

我是 DOM 新手,所以我不太了解如何执行此操作。

目标浏览器:IE6/7/8、Firefox 2/3、Opera、Safari

补充:我正在使用一个名为 JQuery 的程序来帮助我学习

【问题讨论】:

【参考方案1】:

要获取用户点击页面的 x-y 位置,请使用以下 jQuery 代码:

<html>
    <head>
        <script type="text/javascript" src="jquery.js"></script>
        <script type="text/javascript">
            jQuery(document).ready(function()
                $("#special").click(function(e)
                    $('#status2').html(e.pageX +', '+ e.pageY);
                ); 
            );
        </script>
    </head>
    <body>
        <h2 id="status2">
            0, 0
        </h2>
        <div style="width: 100px; height: 100px; background:#ccc;" id="special">
            Click me anywhere!
        </div>
    </body>
</html>

【讨论】:

【参考方案2】:

通常,如果您离开然后返回,浏览器会保留页面视口(在您最喜欢的新闻网站上的任何页面上尝试)。唯一的例外可能是您调整缓存设置以每次重新下载并重新呈现页面。

不这样做(即不将页面设置为从不缓存)可能是解决问题的最简单、最不突兀的方法。

【讨论】:

【参考方案3】:

据我所知,获取视口位置的代码在浏览器之间有所不同,因此使用某种框架会更容易,例如,Prototype 有一个函数 document.viewport.getScrollOffsets(我相信,是你所追求的人)。

但是,获取坐标只是其中的一部分,另一部分将在稍后对它们进行处理。在这种情况下,您可以将事件侦听器添加到 window.unload 事件,当该事件触发时,将位置保存在 cookie 中,然后当用户再次打开页面时,检查该 cookie 是否存在并相应地滚动。

尽管如果您关心的只是让用户通过浏览器的“后退”按钮回到他访问页面时的位置,那么大多数浏览器不是已经自动完成了吗?

【讨论】:

【参考方案4】:

试试this 或this。

【讨论】:

【参考方案5】:

你可以使用 offsetLeft 和 offsetTop

【讨论】:

以上是关于如何使用 Javascript 在浏览器中通过 X-Y 坐标定位?的主要内容,如果未能解决你的问题,请参考以下文章

在 Android 中通过 Javascript 访问加速度计?

在 Mobile Safari 中通过 JavaScript 检测关闭浏览器选项卡?

如何在浏览器中通过 POST 请求加载外国图像?

如何在 JavaScript 中通过 XPATH 获取元素?

如何使用 javascript 在 woocommerce 中通过 Api Rest 添加到购物车?

如何在IOS APP中通过swift/javascript登录网站