Tag: javascript events

移动Safari和jQuery事件,没有什么是射击?

好的,所以我有一个用HTML5 / JavaScript编写的应用程序,用于内置汽车装置。 这是一个“单页”的应用程序,在主页面上为了响应不同的事件而将片段加载到div中。 我被要求将其移植到浏览器,以便它可以用于市场营销,演示等等。 这看起来不是什么大事,因为几乎没有什么适应,只需要调整一些CSS,以便它可以在所有浏览器中显示相同。 然后,他们决定他们想要运行webapp的设备将是一个iPad。 该应用程序在Safari中效果很好,所以我不认为我会在移动Safari中遇到任何问题。 立即意识到,情况并非如此。 在移动Safari浏览器中该应用程序根本不起作用! 基本上,我的点击事件都没有发射。 最重要的是,我的控制台中出现了不一致的错误消息,这些消息在任何其他浏览器中都没有显示出来。 TypeError: 'null' is not an object 围绕这个网站,我看到有关jQuery绑定工作和Mobile Safari的报告有冲突,哪些不支持。 所以我决定build立我自己的实验。 使用单个链接创build页面: <a class="mylink">CLICK ME</a> 然后我尝试了这些绑定中的每一个: $("a.mylink").click(function () { console.log("click worked"); }); $("a.mylink").bind("click", function () { console.log("bind worked"); }); $("a.mylink").live("click", function () { console.log("live worked"); }); $("a.mylink").on("click", function () { console.log("on worked"); }); 唯一一个在控制台中得到任何响应的是.live()。 即使如此,这是非常不一致的,通常涉及点击发送垃圾邮件。 […]

iOS禁用页面使用溢出滚动进行滚动:触摸

所以我们假设我们想让一个web应用程序感觉像一个本地应用程序,并且具有“添加到主屏幕”的function。 其中的第一步是禁用默认的滚动。 很简单,对吧? // window or document window.addEventListener("touchmove", function(event) { // no more scrolling event.preventDefault(); }, false); 这一切都很好,直到你添加overflow-scrolling的混合。 确切地说,在iOS上,它将是-webkit-overflow-scrolling: touch 。 /* #scrollable happens to be a ul */ #scrollable { overflow-y: auto; -webkit-overflow-scrolling: touch; } 通过添加事件防护,硬件加速滚动容器不起作用,显然不是预期的效果。 明显的解决scheme看起来像这样: // you could do this for multiple elements, of course var scrollable = document.querySelector("#scrollable"); scrollable.addEventListener("touchmove", function(event) { […]

如何在iOS上的Safari浏览器中滚动时监视滚动位置?

我目前使用$(window).bind('scroll', foo); 监视$(window).scrollTop()并做些东西来创build视差效果。 在所有桌面浏览器中,用户滚动的每个像素都会调用foo(),所有内容都很漂亮。 在iOS上的Safari中,滚动事件仅在滚动完成后才被触发。 我添加了$(window).bind('touchmove', foo); 以确保在iOS中的滑动过程中调用该函数,这让我进一步了一点。 当用户释放手指时,页面继续滚动,但事件停止发射。 有任何想法吗?

iOS 6 safari,setInterval不会被解雇

看来,如果我滚动window , window.setInterval不会附加/发生滚动正在发生或之后。 有没有其他人看到同样的问题? 我的意思是… 这可能是什么原因造成的? 我能做些什么来解决这个问题?

如何检测iOS的webapp从后台切换回Safari?

如何构build一个能够监控页面何时获得焦点的网页,尤其是当Safari处于后台并且用户将Safari切换回前台时。 下面的代码在iPhone上切换到Safari时不会触发事件 <html> <head> <script type="text/javascript"> window.onfocus = function() { alert("onfocus"); }; </script> </head> <body> Main text </body> </html> 根据http://www.quirksmode.org/dom/events/index.html :当窗口获得焦点时,Safari iPhone不会触发事件。 所以我的问题仍然是:如何检测通过使用Safari浏览器中的iPhone的JavaScript的窗口接收焦点?

如何从Javascript调用Objective C方法并在iOS中将数据发送回Javascript?

在iOS中,如何从UIWebView Javascript中调用Objective-C方法,并将数据发送回Javascript? 我知道这可以使用Webkit库在OS X上完成,但在iOS上可以吗? PhoneGap如何实现这一目标?