void IContextMenuHandler.OnBeforeContextMenu(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, IMenuModel model) { // To disable the menu then call clear model.Clear(); // Removing existing menu item // model.Remove(CefMenuCommand.ViewSource); // Remove "View Source" option // Add new custom menu items // model.AddItem((CefMenuCommand)CloseDevTools, "Close DevTools"); string selectionText = parameters.SelectionText; bool selectedText = !selectionText.Equals(""); // 不在input中 勾选内容 右键 if (!parameters.IsEditable && selectedText) { model.AddItem(CefMenuCommand.Copy, "复制 (Ctrl+C)"); } // 在input中 else if (parameters.IsEditable) { model.AddItem(CefMenuCommand.Cut, "剪切 (Ctrl+X)"); model.AddItem(CefMenuCommand.Copy, "复制 (Ctrl+C)"); model.AddItem(CefMenuCommand.Paste, "粘贴 (Ctrl+V)"); model.AddItem(CefMenuCommand.Delete, "删除 (Delete)"); model.AddSeparator(); model.AddItem(CefMenuCommand.SelectAll, "全选 (Ctrl+A)"); if (!selectedText) { // 若没有勾选内容,则禁止点击 Cut Copy model.SetEnabled(CefMenuCommand.Cut, false); model.SetEnabled(CefMenuCommand.Copy, false); model.SetEnabled(CefMenuCommand.Delete, false); } } else if (parameters.MediaType == ContextMenuMediaType.Image) { model.AddItem((CefMenuCommand)SaveImage, "下载图片"); } else if (parameters.UnfilteredLinkUrl != "") { model.AddItem((CefMenuCommand)CopyLink, "复制链接"); // 当 LinkUrl 是 JavaScript:; 的时候,下载会出问题 if (!Regex.IsMatch(parameters.UnfilteredLinkUrl, @"(?s)(?i)^(javascript:)")) { model.AddItem((CefMenuCommand)SaveLink, "下载链接内容"); model.AddItem((CefMenuCommand)LinkOpenDefaultBrowser, "默认浏览器打开"); } } else { if (_showReload) { model.AddItem(CefMenuCommand.ReloadNoCache, "刷新 (ReloadNoCache)"); } model.AddItem((CefMenuCommand)FeedbackProject, "反馈问题"); model.AddItem((CefMenuCommand)LinkToQWQCODEProject, "开源项目"); # if DEBUG model.AddItem((CefMenuCommand)ShowDevTools, "检查 (ShowDevTools)"); # endif }
void SetupCopyLinkAddress(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, IMenuModel model) { string linkURL = parameters.UnfilteredLinkUrl; if (linkURL != null && linkURL != "") { model.SetEnabled((CefMenuCommand)Copy, true); LastUnfilteredLinkUrl = parameters.UnfilteredLinkUrl; } else { model.SetEnabled((CefMenuCommand)Copy, false); LastUnfilteredLinkUrl = null; } }
public bool RunContextMenu(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, IMenuModel model, IRunContextMenuCallback callback) { model.SetEnabled(CefMenuCommand.Cut, false); return(false); }
public bool RunContextMenu(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, IMenuModel model, IRunContextMenuCallback callback) { var webBrowser = (ChromiumWebBrowser)browserControl; model.SetEnabled(CefMenuCommand.Back, webBrowser.CanGoBack); model.SetEnabled(CefMenuCommand.Forward, webBrowser.CanGoForward); model.SetEnabled(CefMenuCommand.SelectAll, webBrowser.CanSelect); //var menuItems = GetMenuItems(model).ToList(); //menuItems.ForEach(m => //{ // if(m.Item3 == CefMenuCommand.Back) // { // if (!webBrowser.CanGoBack) // { // } // } //}); #region MyRegion //webBrowser.Invoke(new Action(() => //{ // foreach (var item in menuItems) // { // switch (item.Item2) // { // case CefMenuCommand.Back: // { // //browser.GoBack(); // break; // } // case CefMenuCommand.Forward: // { // //browser.GoForward(); // break; // } // case CefMenuCommand.Cut: // { // //browser.FocusedFrame.Cut(); // break; // } // case CefMenuCommand.Copy: // { // //browser.FocusedFrame.Copy(); // break; // } // case CefMenuCommand.Paste: // { // //browser.FocusedFrame.Paste(); // break; // } // case CefMenuCommand.Print: // { // //browser.GetHost().Print(); // break; // } // case CefMenuCommand.ViewSource: // { // //browser.FocusedFrame.ViewSource(); // break; // } // case CefMenuCommand.Undo: // { // //browser.FocusedFrame.Undo(); // break; // } // case CefMenuCommand.StopLoad: // { // //browser.StopLoad(); // break; // } // case CefMenuCommand.SelectAll: // { // //browser.FocusedFrame.SelectAll(); // break; // } // case CefMenuCommand.Redo: // { // //browser.FocusedFrame.Redo(); // break; // } // case CefMenuCommand.Find: // { // //browser.GetHost().Find(0, parameters.SelectionText, true, false, false); // break; // } // case CefMenuCommand.AddToDictionary: // { // //browser.GetHost().AddWordToDictionary(parameters.MisspelledWord); // break; // } // case CefMenuCommand.Reload: // { // //browser.Reload(); // break; // } // case CefMenuCommand.ReloadNoCache: // { // //browser.Reload(ignoreCache: true); // break; // } // case (CefMenuCommand)26501: // { // //browser.GetHost().ShowDevTools(); // break; // } // case (CefMenuCommand)26502: // { // //browser.GetHost().CloseDevTools(); // break; // } // } // } //})); #endregion return(false); // 弹出 }