[英]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.