【问题标题】:WKWebView body onclick ignoredWKWebView body onclick 被忽略
【发布时间】:2015-01-10 16:32:00
【问题描述】:

我在WKWebView 中加载了一个简单的 html 字符串:

<html>
<head>
</head>
<body onclick='alert("Success")'>
    <p>Click me</p>
</body>
</html>

UIDelegate 已正确设置。 onclick 处理程序没有反应。如果我将onclick 处理程序设置到&lt;p&gt; 标记上,它工作正常。知道为什么吗?

【问题讨论】:

    标签: javascript ios wkwebview


    【解决方案1】:

    偶然发现了同样的问题:正如 Wojciech 所说,在 WKWebView 中,body 上的 onclick 监听器永远不会触发(从 iOS 9.3 开始)。

    我通过添加一个中间 &lt;div style="width: 100%; height: 100%"&gt; 作为容器并将 onclick 放在那里解决了这个问题。工作正常。

    【讨论】:

      【解决方案2】:

      这与点击无关。 WKWebView 会默默地忽略您尝试使用 JS 发出的“通知”,包括 alert()。

      因此,为确保 JS 正常工作,您应该使用消息处理程序(如此处所述:http://nshipster.com/wkwebkit/)并使用 JS 传递您的消息。

      【讨论】:

      • 根据我的经验,即使不涉及alert() 的案例仍然会被忽略。在点击时,UIDelegatenavigationDelegate 都不会收到通知,甚至在缺少 href 属性的锚元素上也不会收到通知——所有这些以前都在 UIWebView 下工作。
      • 关于点击。我可以很好地触发消息 (webkit.messageHandlers.callbackHandler.postMessage(\"documentclicked\");),但它不会在 onclick 中触发。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-03-07
      • 1970-01-01
      • 1970-01-01
      • 2016-09-26
      • 2016-06-05
      • 2014-02-25
      • 2011-05-09
      相关资源
      最近更新 更多