C# 在GeckoWebBrowser中检索所选文本

C# 在GeckoWebBrowser中检索所选文本,c#,.net,geckofx,C#,.net,Geckofx,我正在将GeckoFX与C#NET一起使用。可以选择页面中的某些文本。此文本由一个或多个DOM元素组成。我想检索页面中选定的文本 geckoWebBrowser.Window.Selection是GeckoSelection对象的访问器,该对象包含以下信息: 锚定偏移:选择开始的(文本)节点内的偏移 焦点偏移量:选择结束的(文本)节点内的偏移量 我找不到如何获取选择开始和结束的所有节点和偏移量,或者如何获取选择所跨越的所有元素的范围 我如何才能做到这一点?我找到了一个使用JavaScript

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

geckoWebBrowser.Window.Selection是GeckoSelection对象的访问器,该对象包含以下信息:

  • 锚定偏移:选择开始的(文本)节点内的偏移

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

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


我如何才能做到这一点?

我找到了一个使用JavaScript函数的解决方法

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);
   }
GeckoWebBrowser GBrowser = ....
GeckoRange range = GBrowser.Window.Selection.GetRangeAt(0);
string SelectedText = range.CloneContents().TextContent.Trim();
C#GeckoFx解决方案
SelectedText
包含所选文本

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);
   }
GeckoWebBrowser GBrowser = ....
GeckoRange range = GBrowser.Window.Selection.GetRangeAt(0);
string SelectedText = range.CloneContents().TextContent.Trim();