WinForm中WebBrowser的使用
最近由于工作需要,研究了下Winform的WebBrowser控件,在这里给大家分享下。
1、WebBrowser导航
WebBrowser在进行导航的时候需要用到Navigate(string urlString)方法
2、执行已有的JavaScript函数
使用WebBrowser.Document.InovkeScript(string scriptName)
3、执行自定义的Javascript函数
这里需要先将自定义的Javascript写入到WebBrowser.Document.Body中,然后使用InvokScript()方法执行函数。
这里需要引用Microsoft.mshtml.dll
例子:
public static class WebBrowserHelper
{
/// <summary>
/// 创建一个Javascript标签并附加到Document中 如<script type="text/javascript">function(){} </script>
/// </summary>
/// <param name="browser"></param>
/// <param name="script"></param>
/// <returns></returns>
public static void CreateJSElement(WebBrowser browser, string script)
{
var tag = browser.Document.CreateElement("script"); var scriptElement = tag.DomElement as IHTMLScriptElement; scriptElement.type = "text/javascript";//设定为Javascript
scriptElement.text = script;//设置内容 browser.Document.Body.AppendChild(tag);
}
}
这里我们用一个方法 将自定义的JS Append到Document中,调用刚刚的方法
public void RunJS(WebBrowser browser)
{
string scriptStr="function sayHello(){ alert(\"Hello\");}";//我们要执行的自定义函数
WebBrowserHelper.CreateJSElement(browser,scriptStr);//将这段函数附加到Document中 browser.Doucment.InvokeScript("sayHello");//执行sayHello()函数 }
4、获取并处理Javascript函数的返回值
InvokeScript(string scriptName)方法会返回一个Object类型的返回值
如果这个值的类型是Javascript中的 String、Number类型,可以直接调用Convert.ToString(),Convert.ToInt32() 进行转换并取值使用
如果这个值得类型是Javascript中的 Object、Array 类型,则返回一个System.__ComObject类型的对象,目前为止还没找到如何取值的办法,因此这里我选择提供一个自定义函数,将我们要的返回值序列化为JSON字符串再返回。
由于WebBrowser不支持HTML5标准,无法使用JSON.stringify()函数,这里我们需要引用其他序列化JS对象的插件。
这里推荐 Jquery-Json 在这里下载
使用方式很简单 $.toJSON(object);
总体上遇到并解决的问题就是这些了 具体的一些代码 可以 下载DEMO
WinForm中WebBrowser的使用的更多相关文章
- 记WinForm中WebBrowser相关的俩个问题
问题一:如何不让WebBrowser中弹出“安全警告” 当链接https网址时,IE会自动弹出上图中的窗口. 关闭窗口的具体思路如下: 使用WebBrowser加载中/加载完毕后触发的事件处理程序,在 ...
- winform中webBrowser模拟网页操作中遇到的问题
我们通过网页上传一些特殊数据的时候,由于必填项众多,数量量大的时候,会发现工作相当繁琐,前段时间做了一个winform内嵌webBrowser模拟网页上传文档的小工具,发现了许多问题,总结一下: 先说 ...
- C# Winform 中webBrowser显示html内容时禁止错误提示的方法
在winform中有一个控件可以显示html的内容,该控件就是webbrowser,设置它的DocumenText属性为HTML的内容即可. 在使用WebBrowser做UI的时候,我们有时不希望里面 ...
- winform中WebBrowser控件执行脚本
在实际应用中我们可能需要WebBrowser控件主动执行我们需要的脚本,执行脚本现在有两种方法. 1.WebBrowser控件加载脚本,简单方便,适用于简短的脚本,无法执行复杂操作. webBrows ...
- C# Winform中WebBrowser给网页中的input控件赋值/设置值
订阅WebBrowser的DocumentCompleted事件,在里面写入 private void browser_DocumentCompleted(object sender, WebBrow ...
- Winform中修改WebBrowser控件User-Agent的方法(已经测试成功)
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.W ...
- WinForm中嵌入WebBrowser,并且支持C#和JS方法的相互调用
纯粹WinForm界面不够友好,实现数据复杂度高的处理有些力不从心,所以看了看api以后决定用html来做. 我的wlw的代码插件不是很好用,大家凑合看吧 类前说明引用和权限 1: [Permissi ...
- WPF中嵌入WinForm中的webbrowser控件
原文:WPF中嵌入WinForm中的webbrowser控件 使用VS2008创建WPF应用程序,需使用webbrowser.从工具箱中添加WPF组件中的webbrowser发现其中有很多属性事件不能 ...
- 通过批处理操作注册表实现winform应用中Webbrowser以指定的IE版本加载网页
通过批处理操作注册表实现winform应用中Webbrowser以指定的IE版本加载网页 rem 强制WebBrowser控件使用指定IE版本显示应用的网页 IF EXIST %windir%\Sys ...
随机推荐
- OAF_开发系列25_实现OAF中Java类型并发程式开发oracle.apps.fnd.cp.request(概念)
20150719 Created By BaoXinjian
- 从委托到Lambda
写下这篇文章的时候已经是工作三年,突然发现自己从始至终都没有学习过任何东西,突然想学点东西又不知道从何而写那只能一个个基础重新学习. 委托 什么是委托? 委托是一个类,它定义了方法的类型,使得可以将方 ...
- Linux基础之常用命令(1)
一 linux命令的格式 1.命令 [选项] [参数] ls list 显示目录下内容 ① 命令名称:ls 命令英文原意:list 命令所在路径:/bin/ls 执行权限:所有用户 功能 ...
- Maven基础笔记,原理
1.什么是Maven ①Maven是一款实现自动化构建的工具软件. ②构建:从源程序→程序的执行 清理→编译→测试→报告→打包→部署→执行 ③构建工具:Make→Ant→Maven→Gradle... ...
- Boot 44b0x by uboot
1. Creat a branch from tag v2013.10-rc4 2. Build it: make B2 Install NFS service for Ubuntu 12.04 1. ...
- Node ExpressJs server的路径设置
一.动态页面的路径: app.METHOD(PATH, HANDLER)Where: * app is an instance of express.* METHOD is an HTTP reque ...
- C#实用技能篇
Redis配置文件详解 如果不指定配置文件,redis也可以启动,此时,redis使用默认的内置配置.不过在正式环境,常常通过配置文件[通常叫redis.conf]来配置redis. redis.co ...
- SQL Server提高事务复制效率优化(二)快照初始化优化
测试数据表量1500w+,使用初始化默认的快照代理参数,复制的三个过程包括快照初始化,订阅初始化和数据修改复制,主要对快照代理.分发代理.日志读取代理分别作了参数优化,并给出优化前后的对照实验测试. ...
- JUC.Condition学习笔记[附详细源码解析]
目录 Condition的概念 大体实现流程 I.初始化状态 II.await()操作 III.signal()操作 3个主要方法 Condition的数据结构 线程何时阻塞和释放 await()方法 ...
- Lua学习笔记(一)-----C#和lua的交互
一直以来对Lua热更新技术很感兴趣,在上周开始了对Lua的学习,主要学的是uLua. 直接上干货 准备工作: LuaInterface包括两个核心库一个是LuaInterface.dll,一个是Lua ...