当iOS 11 Webview失去焦点时,HTML <select>停止触发onchange或onblur

时间:2018-10-29 15:12:55

标签: javascript html ios wkwebview

我正在为iOS开发混合(网络+本地)应用程序。该应用程序的Web部分是WKWebView(位于UINavigationController上)内的SPA。该网站有一个带有onchange / onblur处理程序的元素时,将显示本机拾取轮。然后,当用户点击本机选择器的“完成”按钮时,会立即触发onchange和onblur处理程序。这一切都按预期工作。 由于这是一个混合应用程序,因此有时该应用程序将视图控制器推到UINavigationController上(位于Web视图顶部)。弹出该视图控制器并将焦点返回到Web视图时,一切似乎都像以前一样工作。 但是,元素之前也是如此。如果在Web视图的生命周期的任何时候都被新的视图控制器所掩盖,则此错误将在Web视图被销毁之前100%的时间发生。 示例代码(这里没有什么特别的): HTML: JS: document.getElementById(“ mySelect”)。onchange = function(){     console.log(“ hello”); } 仅在iOS 11和12上会发生此问题。它是否是特定于Mobile Safari的错误?任何帮助将非常感激。

1 个答案:

答案 0 :(得分:1)

我最近发现,如果将optgroup添加到选择中,则事件似乎可以正确触发。我一直在将空值附加到选择项上,并且现在似乎可以使用。