我正在实现一个基于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);
        }

10-06 15:19