如何在C ++ Builder中阻止TWebBrowser
中的任何URL?
我尝试了这段代码,但它没有按我预期的方式工作。
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
参数设置为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();
}
}