#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. Похоже, это вообще не связано с вопросом. Можете ли вы отредактировать, чтобы показать, как это делается?