iPhone Web 应用程序 JavaScript 事件在从睡眠中唤醒后中断
我正在尝试使用我已经为该应用程序的桌面版本编写的 jQuery 代码构建一个 mobile-safari/iphone web 应用程序。我遇到的问题是,当我的手机在网络应用程序运行时进入睡眠状态时,当我唤醒它(滑动到倒霉)时,JavaScript 事件处理程序将不再起作用。在这种情况下,这意味着当我单击用于通过 onclick 事件执行 AJAX 更新的链接时,它实际上会通过在新的 Safari 窗口中打开页面来跟踪该链接,从而破坏了本机 iPhone 应用程序的外观。
停止工作的代码:
$(function() {
var ajaxLoad;
var ajaxClick = function(e) {
e.preventDefault();
e.stopPropagation();
$("body").load( $(this).attr("href"), ajaxLoad );
}
ajaxLoad = function() {
$(this).find("a").click( ajaxClick );
}
$("a").bind( "click", ajaxClick );
});
当代码工作时,链接的结果将在网络应用程序框架中打开,当它中断时,代码将在新的 safari 窗口中打开,从而破坏实际应用程序的外观。
I'm trying to build a mobile-safari/iphone web-app using jQuery code I already wrote for the desktop version of the app. The problem I'm having is that when my phone goes to sleep with the web-app running, when I wake it up (slide to unluck) the JavaScript event handlers no longer function. In this case meaning when I click on a link that used to perform an AJAX update via an onclick event it actually follows the link by opening the page in a new Safari window, breaking the appearance of the native iPhone app.
The code that stops working:
$(function() {
var ajaxLoad;
var ajaxClick = function(e) {
e.preventDefault();
e.stopPropagation();
$("body").load( $(this).attr("href"), ajaxLoad );
}
ajaxLoad = function() {
$(this).find("a").click( ajaxClick );
}
$("a").bind( "click", ajaxClick );
});
When the code works the result of the link will open in the web-app frame, when it breaks, the code will open in a new safari window, breaking the look of an actual app.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
未测试 - 但将“return false”添加到 ajaxClick 函数的末尾以便链接不会激活是否有帮助。
Not tested - but would it help to add 'return false' to the end of the ajaxClick function so that the link does not activate.