Как: веб-браузер WPF возвращает текущий URL / фильтрует порно

#wpf #browser

#wpf #браузер

Вопрос:

Я использую веб-браузер WPF, и в основном, когда я загружаю внешний URL-адрес, я хочу отфильтровать все загруженные страницы, чтобы убедиться, что URL-адрес не содержит ругательств или слов типа порно.

Это легко сделать при загрузке страницы, поскольку я сверяю URL с моим списком плохих слов; Я также настроил метод завершения загрузки, который возвращает мне URL выбранных слов, однако это не работает должным образом :-

     void webBrowser1_LoadCompleted(object sender, NavigationEventArgs e)
    {
        mshtml.IHTMLDocument2 doc = (mshtml.IHTMLDocument2)this.webBrowser1.Document;

        foreach (IHTMLElement link in doc.links)
        {
            HTMLAnchorElement anchor = link as HTMLAnchorElement;
            if (anchor != null)
            {
                HTMLAnchorEvents_Event handler = anchor as HTMLAnchorEvents_Event;
                if (handler != null)
                {
                    handler.onclick  = new HTMLAnchorEvents_onclickEventHandler(delegate()
                    {
                        uxURLText.Text = anchor.href;

                        //if (HelperClass.isNotFile(anchor.href))
                       // {

                        if (basepage.nonSafeWords.WordsContainSwearWord(anchor.href))
                        {
                            System.Windows.MessageBox.Show(basepage.INTERNET_RESTRICTION_NOTICE);

                        }
                        else
                        {
                            System.Windows.MessageBox.Show("Word Ok");
                        }
                        return true;
                    });
                }
            }
        }
    }
  

Мне нужно в основном остановить загрузку любого плохого контента в окне, будь то по ссылке, кнопке или ajax, если нажата плохая ссылка, всплывающее окно должно уведомить нас. Мне также нужно отобразить текущий URL в адресной строке

Пожалуйста, помогите, большое спасибо

🙂

Комментарии:

1. I need to basically stop any bad content хаха, удачи с этим!

2. Это задание для прокси, а не для приложения WPF.

Ответ №1:

Прослушайте WebBrowser.Navigating событие (документы) и проверьте Uri вход NavigatingCancelEventArgs . Затем установите e.Cancel = true , хотите ли вы не разрешать навигацию.

Но ваша проверка допустимого Uri является более сложной проблемой.

Комментарии:

1. Большое спасибо, это большая помощь! управлять всем намного проще!

Ответ №2:

 private void webBrowser1_Navigating(object sender, NavigatingCancelEventArgs e)
    {
    string currentURl= e.Uri.ToString();
    _addrBox.Text = currentURl;
  
    }

в моем случае это было решением. может быть, это кому-нибудь поможет

Комментарии:

1. Похоже, это вообще не связано с вопросом. Можете ли вы отредактировать, чтобы показать, как это делается?