Tworzę aplikację systemu Windows z kontrolką WebBrowser, która nawiguje do witryny programu SharePoint.
Mój problem polega na tym, że otrzymuję błąd JavaScript.
Jak mogę wyłączyć błąd JavaScript? Nie chcę, żeby się pojawiały.
c#
.net
winforms
webbrowser-control
Dureń
źródło
źródło
Odpowiedzi:
źródło
Spowoduje to wyłączenie błędów skryptu, a także wyłączenie innych okien, takich jak okno logowania NTLM lub okno akceptacji certyfikatu klienta. Poniższe pomija tylko błędy javascript.
źródło
Żadne z powyższych rozwiązań nie było odpowiednie dla mojego scenariusza, obsługa zdarzeń .Navigated i .FileDownload wydawała się być dobrym dopasowaniem, ale dostęp do właściwości WebBrowser.Document wyrzucił wyjątek UnauthorizedAccessException, który jest spowodowany zabezpieczeniami skryptów międzyramkowych (nasza zawartość internetowa zawiera ramki - wszystko włączone ta sama domena / adres, ale ramki mają własne luki w zabezpieczeniach, które są blokowane).
Rozwiązaniem, które działało, było przesłonięcie IOleCommandTarget i przechwycenie poleceń błędów skryptu na tym poziomie. Oto podklasa WebBrowser umożliwiająca osiągnięcie tego:
~
źródło
embed
na tej stronie - dev.windows.com/en-us/microsoft-edge/platform/faq/apps-engine )axwebbrowser1.Silent = true;
źródło
Oto alternatywne rozwiązanie:
źródło
Właśnie znalazłem to:
przykład użycia, aby ustawić webBrowser na cichy: TrySetSuppressScriptErrors (webBrowser, true)
źródło