In meiner Windows-Formularanwendung (WinForms) verwende ich CEFSharp, um eine Webseite zu öffnen. Ich möchte den Kontext der rechten Maustaste ändern, damit der Benutzer die URL anzeigen kann, die geöffnet wurde. Derzeit hat der Kontext „Zurück“, „Vorwärts“, „Drucken ...“ und „View Source“Kann der URI dem Benutzer mit CEFSharp angezeigt werden?
0
A
Antwort
1
Der Kommentar von @amaitland bekam den Ball ins Rollen. Hier ist meine Implementierung. Ich hoffe, das hilft jemand anderem.
Wenn Sie Ihre Instanz von WinForms.ChromiumWebBrowser initialisieren, legen Sie ihre Eigenschaft MenuHandler auf Ihre Instanz eines IContextMenuHandler fest.
chromeBrowser = New WinForms.ChromiumWebBrowser(uri)
chromeBrowser.MenuHandler = New Classes.CefBasicMenuHandler()
Controls.Add(chromeBrowser)
Ihre Implementierung eines IContextMenuHandler ist, wo Sie das Kontextmenü steuern können.
Public Class CefBasicMenuHandler
Implements IContextMenuHandler
private const ShowDevTools as Integer = 26501
private const CloseDevTools as Integer = 26502
Private Const CopyUrlAddress as Integer = 26503
Public Sub OnBeforeContextMenu(browserControl As IWebBrowser, browser As IBrowser, frame As IFrame, parameters As IContextMenuParams, model As IMenuModel) Implements IContextMenuHandler.OnBeforeContextMenu
'//To disable the menu then call clear
model.Clear()
'//Add new custom menu items
model.AddItem(CType(CopyUrlAddress, CefMenuCommand), "Copy URL address")
model.AddSeparator()
model.AddItem(CType(ShowDevTools, CefMenuCommand), "Show DevTools")
model.AddItem(CType(CloseDevTools, CefMenuCommand), "Close DevTools")
model.AddSeparator()
model.AddItem(CefMenuCommand.Reload, "Reload")
model.AddItem(CefMenuCommand.Copy, "Copy")
End Sub
Public Function OnContextMenuCommand(browserControl As IWebBrowser, browser As IBrowser, frame As IFrame, parameters As IContextMenuParams, commandId As CefMenuCommand, eventFlags As CefEventFlags) As Boolean Implements IContextMenuHandler.OnContextMenuCommand
Dim commandId1 As Integer = CType(commandId, Integer)
If commandId1 = ShowDevTools Then
browser.ShowDevTools()
End If
If commandId1 = CloseDevTools Then
browser.CloseDevTools()
End If
If commandId1 = CopyUrlAddress Then
Clipboard.SetText(parameters.PageUrl)
End If
Return False
End Function
Public Sub OnContextMenuDismissed(browserControl As IWebBrowser, browser As IBrowser, frame As IFrame) Implements IContextMenuHandler.OnContextMenuDismissed
End Sub
Public Function RunContextMenu(browserControl As IWebBrowser, browser As IBrowser, frame As IFrame, parameters As IContextMenuParams, model As IMenuModel, callback As IRunContextMenuCallback) As Boolean Implements IContextMenuHandler.RunContextMenu
Return False
End Function
End Class
Verwandte Themen
- 1. cefsharp ExecuteScriptAsync (json) uri zu lang
- 2. Fehlermeldungen werden dem Benutzer nicht angezeigt
- 3. Der Inhalt kann nicht mit dem Suchfilter angezeigt werden.
- 4. Wie werden alle Cookies mit CEFSharp gesammelt?
- 5. Meine Webanwendung kann nicht mit dem Docker-Container angezeigt werden
- 6. Wie kann der Spielstand des Benutzers auf dem Bildschirm in Echtzeit für andere Benutzer angezeigt werden, die in der Gruppe mit dem ersten Benutzer spielen?
- 7. Die Website kann nicht in CefSharp geladen werden.
- 8. Wie werden Dateinamen vor dem Hochladen angezeigt?
- 9. Wie benutzerdefinierte Benutzer in der Benutzertabelle wordpress admin angezeigt werden?
- 10. Bild kann nach dem Hochladen nicht angezeigt werden
- 11. Warum kann der Fortschrittsdialog nicht angezeigt werden?
- 12. Ich kann die Passwort-Feld Eingabe angezeigt werden (mit der Option 'wiederholen') mit dem Zweig (Symfony2)
- 13. URI kann nicht von der Speicherreferenz auf Firebase abgerufen werden
- 14. C# CefSharp Browser kann die meisten Websites
- 15. Eine Datei kann nicht mit dem Befehl win32 dir und dem Python-Subprozess angezeigt werden.
- 16. Wie kann ich eine Liste Lokal Windows-Benutzer (nur die Benutzer, die in dem Windows-Anmeldebildschirm angezeigt werden)
- 17. Wie werden Menüelemente auf dem Bild angezeigt?
- 18. Ungültige URI: Der Hostname kann nicht analysiert werden
- 19. Kann nicht mit Native React mit uri
- 20. UIBarButtonItem kann nicht mit UILabel angezeigt werden
- 21. Kann eine Ansicht an der Stelle angezeigt werden, an der der Benutzer den Bildschirm berührt, und ausgeblendet werden?
- 22. Bild kann nicht angezeigt werden tkinter mit
- 23. XML kann mit PHP nicht angezeigt werden
- 24. Wie aktiviert man Adobe Flash mit CefSharp?
- 25. Liste der Benutzer kann nicht abgerufen werden
- 26. Das Ergebnis der Kameraaktivität in ImageView kann nicht angezeigt werden.
- 27. Wie wird der Inhalt eines URI auf der Konsolenseite angezeigt?
- 28. GridView kann nicht mit OleDbDataReader angezeigt werden
- 29. C#: wie die Angestelltennamen mit dem niedrigsten Gehalt angezeigt werden
- 30. Warum kann die Taste nicht auf dem Bildschirm angezeigt werden?
Sie können das Kontextmenü anpassen http://cefsharp.github.io/api/55.0.0/html/T_CefSharp_IContextMenuHandler.htm mit – amaitland
CEF Debugging-Unterstützung hat! Diese Antwort gab mir genug von dem, was ich brauchte http://Stackoverflow.com/a/31577099/139689 – MADCookie