在GeckoWebBrowser中检索选定的文本

时间:2014-06-02 18:07:48

标签: c# .net geckofx

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

geckoWebBrowser.Window.Selection 是GeckoSelection对象的访问器,其中包含一些信息,例如

  • AnchorOffset 在选择开始的(文本)节点内的偏移量

  • FocusOffset 在选择结束的(文本)节点内的偏移量

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

我该怎么做?

1 个答案:

答案 0 :(得分:1)

我找到了使用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解决方案SelectedText包含所选文字。

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