iOS WKWebview 没有响应 <a href="javascript:doSomething()" ...></a> 上的点击事件

Posted

技术标签:

【中文标题】iOS WKWebview 没有响应 <a href="javascript:doSomething()" ...></a> 上的点击事件【英文标题】:iOS WKWebview not responding to clicks events on <a href="javascript:doSomething()" ...></a> 【发布时间】:2016-12-14 17:19:35 【问题描述】:

我正在尝试使用我的应用程序中的嵌入式浏览器访问一个网站,但我注意到当我尝试点击一个主要链接时根本没有响应。

查看页面html后,我找到了链接:

<a href="javascript:doSomething()" ...></a> 

如何让 WKWebview 执行链接内的 javascript?我尝试扩展委托并实现 didChangeURL,但我无法在其中捕获它(其他 url 确实通过了该函数)。

我真的没有选择,有没有办法解决这个问题?本机浏览器按预期处理它...

谢谢。

【问题讨论】:

这有点晚了,但是您是否尝试提取 href 属性的值,然后使用 eventListener 注入源? 【参考方案1】:

除非您使用链接 javascript 是有原因的,否则如果您只是在常规 div 上使用 onclick,然后将其设置为看起来像一个链接,我希望您将获得更一致的性能。

或者,更好的是,通常避免标记中的处理程序:Better way to call javascript function in a tag

【讨论】:

问题是我无法控制网站,所以我需要让应用适应它。 WKWebview 行为与常规浏览器相比存在很多错误/不一致。如果您无法控制该网站,您可能会不走运。虽然,我承认,我只是站在这枚硬币的另一面。作为开发人员调试的人,所以我绝不是 WKWebview 专家。

以上是关于iOS WKWebview 没有响应 <a href="javascript:doSomething()" ...></a> 上的点击事件的主要内容,如果未能解决你的问题,请参考以下文章

iOS WKWebview如何检测我何时点击<a>标签内的图像

IOS - 来自本地HTML文件的WKWebView中的CORS

iOS WKWebView的使用

在 WKWebView DecidePolicy 中获取表单发布响应正文

iOS wkWebView点击链接无反应

iOS 让 WKWebView 支持 NSURLProtocol