iframe上的jQuery偏移量
我试图让jQuery offset在iframe上工作。我想获得鼠标单击相对于用户单击的iframe的位置 此代码用于IMG,但不用于IFRAME:iframe上的jQuery偏移量,jquery,Jquery,我试图让jQuery offset在iframe上工作。我想获得鼠标单击相对于用户单击的iframe的位置 此代码用于IMG,但不用于IFRAME: // Not working $('iframe').click(function(e) { var offset_t = $(this).offset().top - $(window).scrollTop(); var offset_l = $(this).offset().left - $(window).scrollL
// Not working
$('iframe').click(function(e)
{
var offset_t = $(this).offset().top - $(window).scrollTop();
var offset_l = $(this).offset().left - $(window).scrollLeft();
var left = Math.round( (e.clientX - offset_l) );
var top = Math.round( (e.clientY - offset_t) );
alert("Left: " + left + " Top: " + top);
});
我在中设置了一个代码示例
如何使其工作?Iframe元素不允许单击之类的事件,但您可以在Iframe上创建div并对其应用单击功能,例如:
<div class="container">
<iframe width="500" height="200" src="http://www.google.com"></iframe>
</div>
然后将click事件从iframe更改为.container
$('.container').click(function(e)
{
var offset_t = $(this).offset().top - $(window).scrollTop();
var offset_l = $(this).offset().left - $(window).scrollLeft();
var left = Math.round( (e.clientX - offset_l) );
var top = Math.round( (e.clientY - offset_t) );
alert("Left: " + left + " Top: " + top);
});
有问题吗?iframe将不可访问,但您可以使用Javascript管理它(从iframe中添加和删除指针事件样式)
更新:
为了更好地解释答案,我添加了一个选项(控制按钮用于“启用”或“禁用”iframe)。否。无法将单击事件绑定到iFrame,也就是说,除非它们的来源相同。谢谢!请更新如何使用指针事件使iframe可点击的答案。对不起,Rasmus,iframe无法使用事件。您只能在iframe上放置一个透明div,然后单击它以“模拟”您正在单击iframe。我举了一个例子,使用一个控制按钮来激活/停用iframe,可能是您需要的。看看这个;)
$('.container').click(function(e)
{
var offset_t = $(this).offset().top - $(window).scrollTop();
var offset_l = $(this).offset().left - $(window).scrollLeft();
var left = Math.round( (e.clientX - offset_l) );
var top = Math.round( (e.clientY - offset_t) );
alert("Left: " + left + " Top: " + top);
});