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