Как я могу заблокировать любой URL в TWebBrowser
в C ++ Builder?
Я попробовал этот код, но он не сработал так, как я ожидал.
void __fastcall TForm1::WebBrowser1BeforeNavigate2(TObject *ASender, const IDispatch *pDisp,
const OleVariant &URL, const OleVariant &Flags, const OleVariant &TargetFrameName,
const OleVariant &PostData, const OleVariant &Headers,
WordBool &Cancel)
{
if (URL.operator UnicodeString() == запрещенный_адрес)
WebBrowser1->Stop();
}
запрещенный_адрес
это не URL. Вы должны проверить полный URL, в том числе http:
или же https:
префикс, по мере необходимости.
Кроме того, недостаточно просто позвонить Stop()
Вам также нужно установить обработчик события Cancel
параметр к истине, а также.
void __fastcall TForm1::WebBrowser1BeforeNavigate2(TObject *ASender, const IDispatch *pDisp,
const OleVariant &URL, const OleVariant &Flags, const OleVariant &TargetFrameName,
const OleVariant &PostData, const OleVariant &Headers,
WordBool &Cancel)
{
System::String sUrl = URL;
if (sUrl == _D("http://the full url here"))
{
Cancel = VARIANT_TRUE;
WebBrowser1->Stop();
}
}
Других решений пока нет …