【发布时间】:2014-09-11 09:33:04
【问题描述】:
我的页面中有几个 iframe,无法在平板电脑、手机设备和 Firefox 中滚动浏览这些 iframe。为了解决这个问题,我在 iframe 上放置了一个固定的 div,并使用以下代码复制指针位置(当点击发生时)并在 iframe 内触发点击,现在固定的 div 允许我滚动 iFrame 并点击也可以工作。但是在桌面上,即使由于这个技巧点击可以工作,悬停也不起作用,因此按钮和其他所有带有悬停的东西都变得非常坚固。对于 iFrame 上的这种触摸滚动问题,是否有更好的解决方案?
这是我用来复制鼠标位置并将其转移到 iframe 并执行点击的代码(foo = iframe 上的固定 div):
$('.foo').click(function(event){
var iframe = $('.frameClass').get(0);
var iframeDoc = (iframe.contentDocument) ? iframe.contentDocument : iframe.contentWindow.document;
// Find click position (coordinates)
var x = event.offsetX;
var y = event.offsetY;
// Trigger click inside iframe
var link = iframeDoc.elementFromPoint(x, y);
var newEvent = iframeDoc.createEvent('HTMLEvents');
newEvent.initEvent('click', true, true);
link.dispatchEvent(newEvent);
});
【问题讨论】:
标签: javascript jquery iframe scroll touch