簡體   English   中英

如何在Webkit.Net中選擇用戶控件WebKitBrowser的所有文本?

[英]How do I select all text of the user control WebKitBrowser in Webkit.Net?

WebKitBrowser中有一個方法SelectedText ,但是沒有SelectAll 有沒有一種方法可以讓我執行以下操作:

string GetAllTextOfBrowserAsPlainText(WebKitBrowser webKitBrowser)
{
    webKitBrowser.SelectAll(); //Doesn't exist
    return webKitBrowser.SelectedText;
}

我的目標是完全渲染網頁(包括樣式),然后將網頁內容復制為平面文字,就像在瀏覽器中使用復制/粘貼一樣。

不能選擇獲取InnerText或直接使用HTML。

我已經嘗試使用WebBrowser1.Document.ExecCommand來捕獲WebBrowser UC,但是我無法使樣式正常工作。 我現在正在嘗試WebKit,而且我已經很接近獲得想要的東西。 有什么幫助嗎? WebKit是否存在ExecCommand("SelectAll",...)

嘗試使用WebClient

       using (WebClient wc = new WebClient())
      string mystring= wc.DownloadString("http://yoururl.com");

我通過在下載的html的末尾添加javascript解決了該問題。 從代碼中調用js非常棘手,因為WebKit.Net似乎很難直接執行此操作。 以下不是我的最終產品代碼,但會在整個過程中幫助任何人:

private WebKitBrowser _browser = ...;
private string _selectAllCopyScript = "<script>document.execCommand('SelectAll', false, null);document.execCommand('Copy', false, null); </script>";
private string _plain = ...;

Form1()
{
    ...
    _browser.DocumentCompleted += OnDocumentCompleted;
}

private string GetAllTextOfBrowserAsPlainText(String html)
{
    _browser.Focus();
    _browser.DocumentText = html + _selectAllCopyScript; //Calls OnDocumentCompleted when done
}

private void OnDocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
    _plain = Clipboard.GetText();
    Clipboard.Clear();
}

我希望我找到了一個不必使用剪貼板的解決方案。 復制的最終純文本html存儲在_plain

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM