javascript - 从 iframe 内部获取鼠标绝对位置

标签 javascript jquery iframe mouseover

我有一个网页,其中的 iframe 呈现另一个页面(同一域)。我需要获取相对于父文档的鼠标位置。请记住,iframe 可以双向滚动。我尝试过使用偏移量,但没有成功。

$('#iframe').contents().find('html').on('mousemove', function (e) {

     //gives me location in terms of the iframe but not the entire page. 
     var y = e.pageY; 

     //gives me 0
     var y = $(this).offset().top;

     //more code here....
 })

最佳答案

一种方法是获取 iframe 在父窗口中的位置,并将其添加到相对于 iframe 本身的鼠标位置。扩展下面的代码,

var iframepos = $("#iframe").position();

$('#iframe').contents().find('html').on('mousemove', function (e) { 
    var x = e.clientX + iframepos.left; 
    var y = e.clientY + iframepos.top;
    console.log(x + " " + y);
})

关于javascript - 从 iframe 内部获取鼠标绝对位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28096880/

相关文章:

jquery - 将 JQuery UI.Resizable() 和 UI.Draggable() 与 iFrame 一起使用时出现问题

javascript - 使用 split、splice 获取数组中玩家的姓氏

javascript - 如何根据容器尺寸的变化调整 Morris.js 图表的大小

jquery - 对多个 ID 应用 jquery 函数

javascript - 如何在更改时使用输入文件预览音频

javascript - Protractor 从 iframe 切换到默认内容

html - 将顶部和底部部分添加到 IFRAME

javascript - 能否在 TDD 方法中淘汰和删除冗余测试?

java - 使用 Html 或 JavaScript 在 Java 中滚动图像?

javascript - 我无法让我的 javascript 计数器正常工作