我正在实现一个基于Geckofx的自定义浏览器,我想添加一个搜索引擎,您可以在其中键入任何单词,然后它会在您的文档中搜索巧合,类似于Ctrl + F
在geckofx中已经有办法做到这一点吗?
最佳答案
编辑:这在GeckoFx 29中起作用,在GeckoFx 45中不起作用
我知道一种不完全令人满意的方法-但这也许可以为您提供入门信息...
private void Find(bool backward)
{
string searchString = FindOnPageBox.Text;
var field = typeof(GWB).GetField("WebBrowser", BindingFlags.Instance | BindingFlags.NonPublic);
nsIWebBrowser nsIWebBrowser = (nsIWebBrowser)field.GetValue(TheBrowser);
var browserFind = Xpcom.QueryInterface<nsIWebBrowserFind>(nsIWebBrowser);
browserFind.SetSearchStringAttribute(searchString);
browserFind.SetMatchCaseAttribute(YourProgramName.Settings.CaseSensitiveSearch);
try
{
browserFind.SetWrapFindAttribute(true);
browserFind.SetFindBackwardsAttribute(backward);
browserFind.FindNext();
}
catch { }
}
然后在btn点击时调用它...
private void findOnPage_Next_Button_Click(object sender, RoutedEventArgs e)
{
Find(false);
}