我正在使用GeckoFX和C#.NET。可以选择页面中的某些文本。该文本由一个或多个DOM元素组成。我想检索页面中的选定文本。
geckoWebBrowser.Window.Selection 是GeckoSelection对象的访问器,其中包含一些信息,例如
AnchorOffset :在选择开始的(文本)节点内的偏移量,
FocusOffset :在选择结束的(文本)节点内的偏移量。
我无法找到如何获得所有节点&选择开始和结束的偏移量,或者我如何获得选择所涵盖的所有元素的范围。
我该怎么做?
答案 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();