在GeckoWebBrowser中检索选定的文本

本文关键字:文本 检索 GeckoWebBrowser | 更新日期: 2023-09-27 18:06:21

我在c# . net中使用GeckoFX。可以选择页面中的某些文本。该文本由一个或多个DOM元素组成。我想检索页面中选定的文本。

geckoWebBrowser.Window。选择 是GeckoSelection对象的访问器,该对象包含一些信息,如

  • AnchorOffset : 在选择开始的(text)节点中的偏移

  • FocusOffset : 选择结束的(text)节点内的偏移

我找不到如何获得所有节点&选择开始和结束的偏移量,或者如何获得选择所跨越的所有元素的范围。

我该怎么做?

在GeckoWebBrowser中检索选定的文本

我找到了一个使用JavaScript window.getSelection()函数的解决方案。

Javascript解决方案: JSresult包含所选文本。

GeckoWebBrowser GBrowser = ....
string JSresult = "";
bool bExec;
using (AutoJSContext JScontext = new AutoJSContext(GBrowser.Window.JSContext)) 
   {
      bExec = JScontext.EvaluateScript("window.getSelection().toString();", (nsISupports)GBrowser.Window.DomWindow, out JSresult);
   }

c# GeckoFx solution: SelectedText包含所选文本。

GeckoWebBrowser GBrowser = ....
GeckoRange range = GBrowser.Window.Selection.GetRangeAt(0);
string SelectedText = range.CloneContents().TextContent.Trim();