在 .NET 中用 Cef 代替 WebBrowser 开发基于 Chrome 内核的浏览器-WebView 缺点

在.NET中用Cef代替WebBrowser开发基于Chrome内核的浏览器-创建简单浏览器在.NET中用Cef代替WebBrowser开发基于Chrome内核的浏览器-JS调用C#在.NET中用Cef代替WebBrowser开发基于Chrome内核的浏览器-C#调用JS在.NET中用Cef代替WebBrowser开发基于Chrome内核的浏览器-WebView缺点WebView暴露的方法比较少,所以功能不是很全,比如我们遇到某网页会弹出一个alert,我们想干掉它,不让这个alert弹出来,可是办不到。我们也想在LoadComplete事件中发送回车键,让这个alert关闭。可是办不到,因为只有我们在点击了这个alert之后,这个LoadComplete中的代码才会继续执行。也就是说,这个alert居然阻止了我C#的代码执行。在.NET中用Cef代替WebBrowser开发基于Chrome内核的浏览器-创建简单浏览器在.NET中用Cef代替WebBrowser开发基于Chrome内核的浏览器-JS调用C#在.NET中用Cef代替WebBrowser开发基于Chrome内核的浏览器-C...

.NET 中用 Cef 代替 WebBrowser 开发基于 Chrome 内核的浏览器-C# 调用 JS

.NET中用Cef代替WebBrowser开发基于Chrome内核的浏览器-创建简单浏览器在.NET中用Cef代替WebBrowser开发基于Chrome内核的浏览器-JS调用C#在.NET中用Cef代替WebBrowser开发基于Chrome内核的浏览器-C#调用JS在.NET中用Cef代替WebBrowser开发基于Chrome内核的浏览器-WebView缺点BrowserSettingsbs=newBrowserSettings();WebViewwv=newWebView(url,bs);wv.Parent=this;wv.Dock=DockStyle.Fill;wv.LoadCompleted+=Wv_LoadCompleted;privatevoidWv_LoadCompleted(objectsender,LoadCompletedEventArgsurl){WebViewwv=(WebView)sender;wv.ExecuteScript(@"脚本脚本脚本");} 在.NET中用Cef代替WebBrowser开发基于Chrome内核的浏览器-创建简单浏览器...

.NET WebBrowser-注入 JavaScript

.NETWebBrowser-制作表单系统.NETWebBrowser-一点心得.NETWebBrowser-访问网页失败.NETWebBrowser-DocumentCompleted说明.NETWebBrowser-屏蔽JavaScript错误信息.NETWebBrowser-自动点击网页中的按钮.NETWebBrowser-注入JavaScript这个“注入”可不是SQL注入的意思,这里是指为网页添加JavaScript代码。privatevoidExecScript(stringscriptText){HtmlElementscript=webBrowser1.Document.CreateElement("script");script.SetAttribute("type","text/javascript");script.SetAttribute("text",scriptText);webBrowser1.Document.Body.AppendChild(script);}注意是通过为script设置text属性,而添加的脚本。还有一种情况是,JS脚本已经存在了,我...

.NET WebBrowser-自动点击网页中的按钮

.NETWebBrowser-制作表单系统.NETWebBrowser-一点心得.NETWebBrowser-访问网页失败.NETWebBrowser-DocumentCompleted说明.NETWebBrowser-屏蔽JavaScript错误信息.NETWebBrowser-自动点击网页中的按钮.NETWebBrowser-注入JavaScriptHtmlElementbtn=webBrowser1.Document.GetElementById("btn");btn.InvokeMember("click"); .NETWebBrowser-制作表单系统.NETWebBrowser-一点心得.NETWebBrowser-访问网页失败.NETWebBrowser-DocumentCompleted说明.NETWebBrowser-屏蔽JavaScript错误信息.NETWebBrowser-自动点击网页中的按钮.NETWebBrowser-注入JavaScript...

.NET WebBrowser-屏蔽 JavaScript 错误信息

.NETWebBrowser-制作表单系统.NETWebBrowser-一点心得.NETWebBrowser-访问网页失败.NETWebBrowser-DocumentCompleted说明.NETWebBrowser-屏蔽JavaScript错误信息.NETWebBrowser-自动点击网页中的按钮.NETWebBrowser-注入JavaScript用C#开发WinForm,用到了WebBrowser控件,我们不希望访问网页时出现脚本错误的提示。于是我们将ScriptErrorsSuppressed设置为false,但是它还是出现了。后来发现可以这样解决,将ScriptErrorsSuppressed 设置为true,然后人工拦截。代码如下:webBrowser1.ScriptErrorsSuppressed=true;privatevoidwebBrowser1_DocumentCompleted(objectsender,WebBrowserDocumentCompletedEventArgse){webBrowser1.Document.Window.Error+=...

用 C# Socket 创建一个小型 Web Server

SocketsocketWatch=newSocket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);socketWatch.Bind(newIPEndPoint(IPAddress.Parse("127.0.0.1"),81));socketWatch.Listen(20);//参数表示最多可容纳的等待接受的传入连接数,不包含已经建立连接的。Threadthread=newThread(delegate(objectobj){SocketsocketListen=(Socket)obj;while(true){Socketsocket=socketListen.Accept();byte[]data=newbyte[1024*1024*4];//浏览器发来的数据,限定为4K。intlength=socket.Receive(data,0,data.Length,SocketFlags.None);socket.Send(Encoding.UTF8.GetBytes("欢迎访问www.benshu.com"...

.NET WebBrowser-DocumentCompleted 说明

.NETWebBrowser-制作表单系统.NETWebBrowser-一点心得.NETWebBrowser-访问网页失败.NETWebBrowser-DocumentCompleted说明.NETWebBrowser-屏蔽JavaScript错误信息.NETWebBrowser-自动点击网页中的按钮.NETWebBrowser-注入JavaScriptVisualC# 的WebBrowser 控件有个常用的事件:DocumentCompleted。这个东西听名称感觉对应的 WebBrowser 的ReadyState 为WebBrowserReadyState.Complete, 但实际上不是的,ReadyState 还很可能是Interactive。我们在DocumentCompleted 中输出ReadyState,可以发现有Complete 状态,Interactive 有时候有,有时候没有。另外,我遇到了特别奇怪的情况,DocumentCompleted 中居然还有L...

.NET 中用 Cef 代替 WebBrowser 开发基于 Chrome 内核的浏览器-JS 调用 C#

.NET中用Cef代替WebBrowser开发基于Chrome内核的浏览器-创建简单浏览器在.NET中用Cef代替WebBrowser开发基于Chrome内核的浏览器-JS调用C#在.NET中用Cef代替WebBrowser开发基于Chrome内核的浏览器-C#调用JS在.NET中用Cef代替WebBrowser开发基于Chrome内核的浏览器-WebView缺点本文以JavaScript中实现最小化WinForm窗体为例。///<summary>///JavaScript回调。///</summary>publicclassJsCallback{privateFormContainerForm{get;set;}publicJsCallback(FormcontainerForm){ContainerForm=containerForm;}///<summary>///JS调用示例:jsCallback.minWin();。jsCallback为注册对象名称。///</summary>publicvoidminWin(){Contai...

.NET 中用 Cef 代替 WebBrowser 开发基于 Chrome 内核的浏览器-创建简单浏览器

.NET中用Cef代替WebBrowser开发基于Chrome内核的浏览器-创建简单浏览器在.NET中用Cef代替WebBrowser开发基于Chrome内核的浏览器-JS调用C#在.NET中用Cef代替WebBrowser开发基于Chrome内核的浏览器-C#调用JS在.NET中用Cef代替WebBrowser开发基于Chrome内核的浏览器-WebView缺点CEF:ChromiumEmbeddedFramework。它依赖如下项目:Chromium:基础,网络堆栈,线程,消息机制,log,进程控制,生成Webbrowser。WebKit:提供DOM解析,布局,事件处理,渲染,HTML5JS的API。V8:JS引擎。Skia:2D图形库。Angle:3D图形转换,和DirectX有关。版本CEF1:单进程工具调用ChromiumWebkitAPI。CEF2:多进程工具建立在ChromiumBrowser。CEF3:多进程工具调用ChromiumContentAPI。使用首先在http://www.benshu.com/tools/downloads/Cef.zip 下载...

.NET WebBrowser-访问网页失败

.NETWebBrowser-制作表单系统.NETWebBrowser-一点心得.NETWebBrowser-访问网页失败.NETWebBrowser-DocumentCompleted说明.NETWebBrowser-屏蔽JavaScript错误信息.NETWebBrowser-自动点击网页中的按钮.NETWebBrowser-注入JavaScriptWebBrowser访问网页失败,出现“已取消到该网页的导航”,我们的程序如何知道呢?1、为WebBrowser增加DocumentCompleted事件2、在该事件处理程序中,增加如下代码:if(webBrowser1.Document.Url.ToString().StartsWith("res://")){MessageBox.Show("服务器连接失败,程序即将退出。",Text);Exit();}注意webBrowser1.Document.Url指当前文档实际的URL,而webBrowser1.Url指WebBrowser访问的Url,那个参数WebBrowserDocumentCompletedEventArgs的Url指...

WebKit 替换 WebBrowser 浏览器控件加载图片慢的临时解决

.NET版本的 WebKit控件在WinForm中嵌套了一个浏览器控件,WebKit使用的是标准CSS解析,这下就解决了微软的WebBrowser控件受客户端安装IE影响的问题。但是我发现有个问题,就是加载图片特别慢,后来研究发现,加载慢的图片都是PNG格式。由于WebKit的相关资料非常少,也找不到怎么解决,临时将图片由PNG换成JPG,虽然大小没怎么变化,但居然快多了。...

.NET WebBrowser-一点心得

.NETWebBrowser-制作表单系统.NETWebBrowser-一点心得.NETWebBrowser-访问网页失败.NETWebBrowser-DocumentCompleted说明.NETWebBrowser-屏蔽JavaScript错误信息.NETWebBrowser-自动点击网页中的按钮.NETWebBrowser-注入JavaScript不让JavaScript错误显示出来,设置属性ScriptErrorsSuppressed为false(默认值就是false,所以其实不用设置)。不让右键菜单显示出来,设置属性IsWebBrowserContextMenuEnabled为false。不让滚动条显示出来,设置属性ScrollBarsEnabled为false。不让接受拖拽,设置属性AllowWebBrowserDrop为false,否则多个WebBrowser时,WebBrowserA 中的内容可被拖到WebBrowserB 中去。不让使用快捷键(比如F5),设置属性WebBrowserShortcutsEnabled为false。.NETWebBro...

多线程与异步-异步调用 Web Service

多线程与异步-什么是线程安全?多线程与异步-C#如何使用线程多线程与异步-关于让线程“等等”有关的几个方法多线程与异步-将参数传入线程的三种方法多线程与异步-C#异步调用多线程与异步-异步调用与多线程的区别多线程与异步-异步调用WebService多线程与异步-Task.Run、await、async以异步方式执行可能最常见的就是用异步调用了(请参见C#异步调用),为啥不用多线程呢?请参见:异步调用与多线程的区别。异步调用WebService跟其他异步调用没啥区别,使用免费的天气预报程序接口提供的WebService。privatedelegatestringAsyncFuncDelegate();privatestringAsyncFunc(){cn.com.webxml.webservice.WeatherWSws=newcn.com.webxml.webservice.WeatherWS();string[]items=ws.getWeather("重庆","");returnString.Join(Environment.NewLine,items);}privatevoidA...

.NET WebBrowser-制作表单系统

.NETWebBrowser-制作表单系统.NETWebBrowser-一点心得.NETWebBrowser-访问网页失败.NETWebBrowser-DocumentCompleted说明.NETWebBrowser-屏蔽JavaScript错误信息.NETWebBrowser-自动点击网页中的按钮.NETWebBrowser-注入JavaScript在Web中,通过HTML制作表单很方便,但WinForm中就很麻烦了,一点也不灵活,Label的自动大小、行高,TextBox的定位等等,都很麻烦。所以,还是通过WebBrowser使用HTML的方式来实现表单。创建表单内容webBrowser1.DocumentText="<body><inputtype="text"id="t1"/></body>";将HTML内容直接赋给DocumentText。向表单元素赋值在WebBrowser的 DocumentCompleted事件中处理,注意不要在Navigated中处理,在Navigated中处理可能在某些浏览器中会出问题。if(webBr...

WinForm 使用 HttpUtility 无 System.Web.dll?

在VisualC#中使用HttpUtility是无效的,即使添加了命名空间System.Web,是因为需要在引用中添加System.Web.dll。可是没有System.Web.dll啊请切换到浏览标签,在C:WindowsMicrosoft.NETFrameworkv2.0.50727目录下找到,其中v2.0.50727是你实际使用的.NET版本。...
首页上一页12345...下一页尾页