【问题标题】:This code stopped working in Safari after iOS 9.3此代码在 iOS 9.3 之后停止在 Safari 中工作
【发布时间】:2016-08-30 19:18:12
【问题描述】:

大约 5 年前,我开发了一个基于网络的移动数据输入应用程序,在 iOS 的 9.3 或 9.3.1 版本之后,它在 Safari 中无法正常工作。它可能更早开始,但我知道它在 iOS 9.2.1 中仍然有效。它在 Chrome 中运行没有问题。

以下 jsfiddle 表示应用程序的 sn-p 无法正常工作:点击任何对象都无法打开选项。

https://jsfiddle.net/panmqj8a/2/

要在 iDevice 上运行它而不看到 HTML/CSS/JS 框架: https://jsfiddle.net/panmqj8a/2/embedded/result/

那里有相当多的代码,我不希望这个问题显得太长,但显然我必须在这个问题中粘贴一些代码才能被认为是有效的。

以下是构建选择对象之一的代码示例:

var activity_data = [ 
    { "id" : "AD1",
      "name" : "Action 1"
    },
    { "id" : "AD2",
      "name" : "Action 2"
    },
    { "id" : "AD3",
      "name" : "Action 3"
    }
];
$.each(activity_data, function(ind,obj) {
    $('.sel_act').append(
        $('<option></option>').val(obj.id).html(obj.name)
    );
});

在应用程序的完整版中,会发生同样的事情(无法点击任何元素),而且屏幕上的其他按钮也变得无响应。

对于我的生活,我无法弄清楚为什么该应用程序和这个 jsFiddle 在 Safari iOS 9.2.1 中运行,但在 Safari iOS 9.3.1 中运行。

编辑 - 现在小提琴似乎间歇性地为我工作。这很烦人。

【问题讨论】:

    标签: jquery ios css html safari


    【解决方案1】:

    FWIW - 原来 window.confirm()s 是问题所在。没有真正记录在任何地方,但是一旦我删除了所有 window.confirm()s 并将它们替换为暂时显示在 DIV 中(我并不真正需要用户输入,从而改善交互),或者一个 div 承诺何时我做到了,问题消失了。

    【讨论】:

      【解决方案2】:

      iOS 和 Safari 中的下拉菜单也遇到了同样的问题。最后我通过在这些特定类中添加cursor:pointer 来解决。你也可以试试这个,它可能会起作用。
      在您的情况下,类可能是 .sel_hcw 或 .mom_select 尝试一次。

      【讨论】:

      • 感谢您的建议。我在我的应用程序中尝试过,不幸的是它没有用。正如我在上面的编辑中提到的,我放入 jsfiddle 的 sn-p 与我的应用程序没有完全相同的问题,而且由于它跨越多个页面,将所有应用程序都放入 jsfiddle 太困难了。因此,虽然添加 cursor:pointer 可能会修复 jsfiddle,但我知道它对我的应用程序没有帮助。再次感谢您抽出宝贵时间。
      猜你喜欢
      • 2013-10-05
      • 1970-01-01
      • 1970-01-01
      • 2011-08-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-15
      • 1970-01-01
      相关资源
      最近更新 更多