首页 > 解决方案 > c# WebView2 ==> 如何从 WebView2 窗口中获取选定的文本

问题描述

我如何能

动态文档 = webView1.Document.DomDocument; 动态选择 = document.selection; 字符串文本 = selection.createRange().text; 返回文本;

在 webBrowser 中工作。

我需要在 WebView 浏览器中突出显示文本并将其返回。

先感谢您。

标签: c#webview2

解决方案


从您的主机代码 (C#) 中,您可以调用webView2.CoreWebView2.PostWebMessageAsJson()将任意 JSON 编码的 Javascript 对象传递给浏览器环境中的 Javascript。

也许这样的事情可以告诉你的浏览器Javascript从你的剪贴板中获取文本。

webView2.CoreWebView2.PostWebMessageAsJson(
       "\"verb\":\"getclipboard\",\"format\":\"text\"}")

webView2.CoreWebView2.WebMessageReceived += MessageHandler;

private void MessageHandler 
          (object s, CoreWebView2WebMessageReceivedEventArgs e) {
    var clipboardText = e.TryGetMessageAsString();
}
 

在您的浏览器 Javascript 中,您可以执行

window.chrome.webview.addEventListener('message',  function (event) {
    const payload = event.data
    if (payload.verb === 'getclipboard') {
      /* do what you need to do with your clipboard */
      const clipboardText = 'whatever'
      windows.chrome.webview.postMessage(clipboardText);
} )

该 postMessage 将向您的主机 MessageHandler 传递一个事件。


推荐阅读