发布于2021-05-30 19:44 阅读(1293) 评论(0) 点赞(19) 收藏(4)
关于此组件使用方法不再过多描述
本博文:重点说明 在(dotnetbar) SuperTabControl 做标签浏览器的使用心得。
翻阅资料实践后总结的关键点,以备查阅;重点OnBeforePopup 3种方法
- public class CefSharpOpenPageSelf : ILifeSpanHandler
- {
- public bool DoClose(IWebBrowser browserControl, IBrowser browser)
- {
- if (browser.IsDisposed || browser.IsPopup)
- {
- return false;
- }
- return true;
- }
- public void OnAfterCreated(IWebBrowser browserControl, IBrowser browser)
- {
- //throw new NotImplementedException();
- }
- public void OnBeforeClose(IWebBrowser browserControl, IBrowser browser)
- {
- //throw new NotImplementedException();
- }
-
- public bool OnBeforePopup(IWebBrowser browserControl, IBrowser browser, IFrame frame, string targetUrl, string targetFrameName, WindowOpenDisposition targetDisposition, bool userGesture, IPopupFeatures popupFeatures, IWindowInfo windowInfo, IBrowserSettings browserSettings, ref bool noJavascriptAccess, out IWebBrowser newBrowser)
- {
- try
- {
- //方法1:自身窗口中打开====================
- if (!popnewwin)
- {
- var chromiumWebBrowser = (ChromiumWebBrowser)browserControl;
- chromiumWebBrowser.Load(targetUrl);//自身加载此句起作用!!
- newBrowser = null;
- return true; //Return true to cancel the popup creation 取消弹出
- }
- //else
- //{
- // //方法2:弹出新窗口=========================
- // newBrowser = null;
- // return false;//弹出新窗口
- //}
- else
- {
- //方法3:新TAB中打开=======================
- newBrowser = null;
- superTabCtl.Invoke(new MethodInvoker(() =>
- {
- string stxt = "新页面..." + _NewTabId++;//显示默认文本
- SuperTabItem tab = superTabCtl.CreateTab(stxt);//新建tab名称为 NewTabx
- ChromiumWebBrowser wb = new ChromiumWebBrowser(targetUrl)
- {
- KeyboardHandler = new KeyBoardHander(),
- //MenuHandler = new MenuHandler(),
- DownloadHandler = new DownloadHandler(),
- LifeSpanHandler = new CefSharpOpenPageSelf(),
- Dock = DockStyle.Fill
- };
- wb.BrowserSettings = bset;
- tab.Name = "tabitem_" + (_NewTabId - 1);//tab名称(保证唯一)
- tab.Tag = targetUrl;// (_NewTabId - 1);//作为参照体唯一性
- tab.Symbol = "\uf179";//f08b,f090,f0ca,f0cb,f17d,f170 (应用方式)
- tab.SymbolSize = 12F;//图标大小
- tab.CloseButtonVisible = true;//可关闭
- tab.AttachedControl.Controls.Add(wb);//浏览器添加到panel
- if (!tab.IsSelected)
- superTabCtl.SelectedTab = tab;//选中最新建的tab ***
- wb.Update();
-
- //添加browser事件
- wb.FrameLoadEnd += new EventHandler<FrameLoadEndEventArgs>(wb_FrameLoadEnd);//加载完成
- wb.FrameLoadStart += new EventHandler<FrameLoadStartEventArgs>(wb_FrameLoadStart);//加载开始事件
- wb.AddressChanged += popwb_AddressChanged;//地址????
- wb.TitleChanged += wb_TitleChanged;//同步网页标题到tab.text(更新提示文本)
- }));
- return true;//alse以让CEF创建窗口非常重要。
- }
- }
- catch (Exception ex){
- newBrowser = null;
- return false;
- }
- }
- }
标签加个性小图标(从网页中自取未做实现)
二维码介绍见:https://jiuai.blog.csdn.net/article/details/117318539
现浏览器基本实现了大部分功能
截图,取色,大小写转换,源代码获取,文本筛选提取,一键导出PDF,开机自启动(不修改注册表)系统各种工具集成,常见网址导航,可双面浏览器显示(点击齿轮切换开关,注意调成非标签模式为佳),ie内核(简单集成,其他应用见相关博文介绍),可以换tab皮肤,可以换位置(四个方向 上 右 下 左),钟表插件,MQTT物联网远程控制(重点。有介绍见博文)--可以实现手机控制。。。绝对的好玩刺激,也是首创!
以前做过多款浏览器,这个功能最强,也是最满意的一次。
作者:美丽的老婆你听我说
链接:http://www.phpheidong.com/blog/article/86905/5fae62edb90d62698a34/
来源:php黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 php黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-4
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!