如何获取 WKWebView 上指定位置的信息?

Posted

技术标签:

【中文标题】如何获取 WKWebView 上指定位置的信息?【英文标题】:How to get word on indicated location on WKWebView? 【发布时间】:2016-11-21 07:20:18 【问题描述】:

当你在WKWebView网页上长按一个词时,你会选择它,系统会弹出一个菜单让你分享/复制/查找它等等。这是 ios 的默认行为。

所以我的问题是,如何以编程方式从 WKWebView 网页上的指示点 (CGPoint) 获取单词

或者,如何在不长按的情况下以编程方式在 WKWebView 网页上选择单词

任何建议表示赞赏!

【问题讨论】:

你看过 DOM 选择范围吗? ***.com/a/2214120/218152 检查这个问题***.com/questions/31175224/… 【参考方案1】:

首先,您必须使用convertPoint:toView: 将点转换为滚动视图的坐标系。您可以在 javascript(使用 jQuery)函数中使用这一点,该函数将在此时搜索 DOM 节点:

function(inX, inY) 
    var theWindow = $(window);
    var theElement = document.elementFromPoint(
        inX - theWindow.scrollLeft(), inY - theWindow.scrollTop());

    return theElement == null ? null : theElement.textContent;

【讨论】:

不适合我。来自 webView.evaluateJavaScript 的错误说 $ 未定义。在我用 window 替换 $(window) 后,它说 scrollLeft 是未定义的。 所以我把脚本编辑成这样:var theElement = document.elementFromPoint(\(point.x), \(point.y)); theElement == null ? null : theElement.textContent; 现在它可以在point 上给我一些内容,但是给我一个词,它给了我一个完整的句子,这不是我的预期。 你必须包含 jQuery 才能让 $-expressions 工作。 嘿,对不起,你能告诉我如何在 wkwebview 中添加 jquery 吗?我做不到。 您可以将jQuery加载到一个字符串中并使用developer.apple.com/documentation/webkit/wkwebview/…执行它

以上是关于如何获取 WKWebView 上指定位置的信息?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 WKWebView 启用和获取 cookie?

带有位置服务的 wkwebview

如何在 wkwebview 中重置地理位置的权限

如何有效地为许多产品提供 1 个 html 布局页面,这些产品将调用 mysql 数据库获取产品信息并插入我指定的位置?

WPF中我设计了一个界面,界面上有个按钮,点击按钮,如何将界面内容保存在电脑指定位置(如:桌面上)。

如何为 wkwebview 使用 iOS 13 暗模式