Tag: mobile safari

在touchend事件期间查找元素手指

我需要在调用touchend事件时发现手指下面的html元素。 我正在使用的代码; $(‘.wsSquare’).on(“mouseup touchend”,function(event){ event.preventDefault(); event.stopPropagation(); console.log($(event.target).data()); }); 在(非触摸)设备上使用鼠标,此代码在mouseup事件时正确记录与鼠标下的元素关联的数据。 但是在触摸设备(ipad safari)上,event.target是touchstart事件期间手指下的元素,并在touchstart事件下记录元素的数据 我还检查了touchmove事件的行为,这也有相同的行为(event.target是touchstart元素)。 似乎所有触摸事件的目标是在手势开始时触摸的元素。 调用touchend事件时,我需要访问手指下的元素。 我的手势可能会遍历许多元素。 编辑 进一步的研究从规范中挖掘出来。 5.5 touchend事件 用户代理必须调度该事件类型以指示用户何时从触摸表面移除触摸点,还包括触摸点物理地离开触摸表面的情况,例如被拖离屏幕。 此事件的目标必须与触摸点首次放置在曲面上时开始的元素相同,即使触摸点已移动到目标元素的交互区域之外 。 删除的一个或多个触点必须包含在TouchEvent的changedTouches属性中,并且不得包含在touches和targetTouches属性中。 所以观察到的行为是正确的,我该如何改变这种行为呢?

在Mobile Safari中禁用“上一个”和“下一个”按钮

当专注于输入字段时,是否可以禁用Mobile Safari中的“下一个”和“上一个”按钮? 我一直在尝试将所有字段设置为readonly=”readonly”并分别删除/重新应用焦点/模糊属性的方法。 它适用于某些领域,但并非适用于所有领域。 在某些情况下,它感觉相当hacky / buggy。 我可以普遍禁用上一个和下一个控件吗? 这适用于iPad网络应用程序,因此可访问性不是问题。

iFrame和Mobile Safari(iPad / iPhone)

这是问题,我有并且需要iframe网页。 这个iframe必须具有一定的宽度/高度。 这在iOS中不起作用,因为可爱的iOS决定忽略帧的高度属性并强制显示所有内容(混蛋!)。 你如何让它成为一个普通的iframe?

在移动Safari(iPad / iPhone)中防止longpress / longclick上的默认上下文菜单

对于一个网站,我想在用户“长按”屏幕时显示自定义上下文菜单。 我在我的代码中创建了一个jQuery Longclick监听器来显示自定义上下文菜单。 将显示上下文菜单,但也会显示iPad的默认上下文菜单! 我试图通过在我的监听器中向事件添加preventDefault()来防止这种情况,但这不起作用: function showContextMenu(e){ e.preventDefault(); // code to show custom context menu } $(“#myId”).click(500, showContextMenu); 问题 你可以阻止iPad的默认上下文菜单显示吗? 可以使用jQuery Longclick插件完成吗? Longclick插件具有针对iPad的一些特定处理(假设通过它的源代码片段): if (!(/iphone|ipad|ipod/i).test(navigator.userAgent)){ $(this) .bind(_mousedown_, schedule) .bind([_mousemove_, _mouseup_, _mouseout_, _contextmenu_].join(‘ ‘), annul) .bind(_click_, click) } 所以我假设这回答了我的第二个问题(假设插件使用了正确的事件)。

在@ IPad上的Safari上按“后退”按钮时,不会收到“pageshow”

我有以下处理程序: $(window).bind(‘pageshow’, function() { alert(“back to page”); }); 当我离开页面(通过按下链接)并返回页面(通过按“后退”按钮)时,不会调用alert() (IPad 2,iOS 5.1)。 我做错了什么? 我需要绑定的任何其他事件? PS:有趣的是,在离开页面时正确接收了Pagehide 。

在html5浏览器中取消单个图像请求

我正在动态加载(大)图像以绘制到html5canvas,如下所示: var t = new Image(); t.onload = … t.src = ‘http://myurl’; 但每隔一段时间就想完全取消图像请求 。 我想出的唯一方法是将src设置为” 。 即 t.src = ” 这适用于许多浏览器,但似乎只有Firefox实际上取消了对图像的http请求。 我通过禁用缓存并启用“模拟调制解调器速度”来测试Fiddler2 。 然后运行一个小提琴来测试取消图像请求。 (我很想听听关于如何测试这个的其他想法) 我知道有办法取消所有请求( 如本问题所示 ),但我只想取消一个。 有关其他方式(特别是在移动浏览器上)的任何想法吗?