URL блока c ++ WebBrowser - PullRequest
       15

URL блока c ++ WebBrowser

0 голосов
/ 17 сентября 2018

Как я могу заблокировать любой 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();
}

1 Ответ

0 голосов
/ 17 сентября 2018

запрещенный_адрес не является URL.При необходимости вы должны проверить URL-адрес complete , включая префикс http: или https:.

Кроме того, недостаточно просто позвонить Stop(), вам также необходимоустановить для параметра Cancel обработчика событий также значение true.

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();
    }
}
...