【发布时间】:2011-11-23 06:40:58
【问题描述】:
我正在开发一个网络应用程序。我正在尝试禁用链接上的大多数默认 iOS Safari 行为,因此我将链接上的“-webkit-touch-callout”CSS 属性设置为“无”。但是,我仍然注意到,如果我将手指放在链接上一秒钟左右,然后拖动它,然后放开它,链接将在新窗口中打开。我不想要这种行为。我希望它要么在同一个窗口中打开,要么什么都不做。有谁知道如何做到这一点?
编辑:我正在使用 jQuery,所以如果可以简化事情,可以使用 jQuery 的事件处理函数。
编辑 2: 对于某些链接,我使用处理程序来覆盖其默认行为。例如:
$(".categoryList a").live("click", function(e) {
e.preventDefault();
$.get(
"someOtherUrl",
{someVariable: "someValue"},
function(result) {
$(".result").html(render(result));
}
);
});
我的实际代码比这更复杂,但我的意思是我正在覆盖某些链接上的默认点击操作,并且我用来解决此问题的任何解决方案都不应干扰这些处理程序。 Sanooj 的解决方案不适用于我的目的,因为“window.location”分配总是重定向浏览器,无论我是否有任何处理程序来防止这种行为。也许我可以说不应该为此目的使用链接,但这就是我开始使用它之前应用程序的样子,改变这将是一个大项目。我想知道是否有更简单的方法来解决这个问题。
【问题讨论】:
-
我希望您正在为某些公司开发一个严格的内部应用程序,而不是试图破坏一些随机网络用户的浏览器功能。
-
这是一个内部应用程序。现在,它不能在打开 2 个窗口的情况下正常工作,并且在我们的应用程序中打开一个窗口并在 Safari 中打开另一个窗口会令人困惑。我们可能有一天会解决这个问题,但这不是首要任务。我不知道有人故意在我们的应用上做这种拖动手势。
标签: javascript html css ios safari