Führen Sie im NavigationCompleted-Ereignishandler das folgende Skript aus:
%Vor%Es gibt ein Navigationsstart-Ereignis. Es verfügt über eine Cancel-Eigenschaft, mit der die Navigation abgebrochen werden kann. Vielleicht wird das für Sie funktionieren?
Vor kurzem habe ich selbst darüber gestolpert, und ich möchte hinzufügen, dass die Nutzer2269867 Antwort eine brauchbare Lösung ist in bestimmten Situationen nicht funktionieren.
Der Systembrowser öffnet sich beispielsweise nicht nur, wenn der Benutzer auf einen Link mit dem Attribut target="_ blank" klickt, sondern auch, wenn die Funktion window.open () in JavaScript aufgerufen wird. Darüber hinaus funktioniert auch das Entfernen aller Zielattribute nicht, wenn eine Seite einen Inhalt dynamisch lädt und das DOM ändert, nachdem das Skript bereits fertig ausgeführt wurde.
Um alle oben genannten Probleme zu lösen, müssen Sie die Funktion window.open außer Kraft setzen und nicht jedes Mal nach dem Attribut "target" suchen, sondern immer dann, wenn ein Benutzer auf etwas klickt. Hier ist ein Skript, das diese Fälle abdeckt:
%Vor%Meine js-Fähigkeiten sind nicht ideal, also ändere sie gerne. Vergessen Sie auch nicht, dass, wie kiewic erwähnt , für Windows 10 das Ereignis WebView.NewWindowRequested vorhanden ist, das dieses Problem natürlicher löst .
Wenn Sie nur die Seite anzeigen möchten und keine Aktion auf dieser Seite ausführen möchten, würde ich in WebViewBrush schauen. Der WebViewBrush wird grundsätzlich die Website screenshot und die Benutzer werden nicht in der Lage sein, irgendwelche Links oder irgendetwas anderes auf dieser Seite zu verwenden, es wird in eine schreibgeschützte Seite umgewandelt. Ich glaube, das ist es, wonach du verlangst.
Weitere Informationen zu WebViewBrush finden Sie hier: Ссылка
Tags und Links c# webview windows-runtime target