• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

html - WKWebView 未打开某些目标 ="_blank"链接

[复制链接]
菜鸟教程小白 发表于 2022-12-12 15:57:47 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我已经实现了公认的解决方案here它确实适用于 一些网站。例如:访问 www.tomcruise.com 并点击他的预告片。这些链接中的每一个都有 target="_blank"并在实现先前链接的堆栈溢出帖子中建议的解决方案后开始打开。

但现在我发现如果我们去 here并单击任何链接(在撰写此问题时,我尝试过的链接具有如下的 href 标签

 <a rel="nofollow" target="_blank" href="http://www.nowmagazine.co.uk/celebrity-news/victoria-and-david-beckham-fighting-to-be-together-296082" class="ot-anchor aaTEdf" jslog="10929; track:click" dir="ltr">http://www.nowmagazine.co.uk/celebrity-news/victoria-and-david-beckham-fighting-to-be-together-296082</a>

当我从 WKWebView 内部单击此链接时,会调用下面的 WKUIDelegate 方法,但具有 navigationAction.request = "",因此调用 webView.loadRequest("") 时没有任何反应。还有其他人面临这个问题吗?

  optional func webView(_ webView: WKWebView, createWebViewWithConfiguration configuration: WKWebViewConfiguration,
       forNavigationAction navigationAction: WKNavigationAction,
            windowFeatures windowFeatures: WKWindowFeatures) -> WKWebView?{
      if navigationAction.targetFrame == nil {
          webView.loadRequest(navigationAction.request)
      }

      return nil
}
  • 上面指定的 href 标记导致 WKUIDelegate 方法被空 url 调用的特殊之处是什么?
  • 我们如何解决这个问题?让我知道您是如何导致问题的,因为我也对调试感兴趣。



Best Answer-推荐答案


我希望我可以使用 WKWebView 委托(delegate)方法来解决它,但我想不通。

于是我去了UIWebView时代的网页加载完成后运行javascript函数的解决方案

func webView(webView: WKWebView, didFinishNavigation navigation: WKNavigation!) {
    let jsCode = "var allLinks = document.getElementsByTagName('a');if (allLinks) { var i;for (i=0; i<allLinks.length; i++) {var link = allLinks[i];var target = link.getAttribute('target');if (target && target == '_blank') {link.setAttribute('target','_self');} } }"
    webView.evaluateJavaScript(jsCode, completionHandler: nil)
}

这解决了点击任何 google plus 帖子页面中的链接导致加载空白页面的问题


2015 年 11 月 3 日更新:问题中解释的现象在 Swift 2.0 代码中不再发生在我身上。因此,您应该能够使用提供的解决方案 here为了您的所有目的

关于html - WKWebView 未打开某些目标 ="_blank"链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31955880/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap