一文章说明了如何让 js 脚本访问 .NET 中的类, 这次希望给大家说明一下在任意页面中安装 jQuery 脚本, 并操作页面上的元素.

其实在第一篇关于 IEBrowser 的文章当中, 已经有了一段 jQuery 的示例, 但可能由于篇幅原因, 没有过多的解释, 所以决定单独写一篇来重新说明.

次准备的例子也是较为简单的, 实现了模拟用户搜索百度, 请大家看下面的代码:

if ( string.IsNullOrEmpty ( this.txtKeyword.Text ) )
return; IEBrowser ie = new IEBrowser ( this.webBrowser ); ie.Navigate ( "http://www.baidu.com/" ); ie.IEFlow.Wait ( new UrlCondition ( "wait", "http://www.baidu.com/", StringCompareMode.StartWith ) ); ie.InstallJQuery ( JQuery.CodeMin ); ie.ExecuteJQuery ( JQuery.Create ( "'#kw'" ).Val ( "'" + this.txtKeyword.Text.Trim ( ) + "'" ) ); ie.ExecuteJQuery ( JQuery.Create ( "'#su'" ).Click ( ) ); Console.WriteLine(ie.ExecuteJQuery<string>(JQuery.Create("'title'").Text()));

这段有效代码不超过 10 行的代码段, 模拟了导航并等待百度页面, 之后模拟用户搜索、输出标题的功能,

在窗口上, 我们拥有一个名称为 webBrowser 的 WebBrowser 控件和一个名称为 txtKeyword 的TextBox 控件.

在代码开始时, 我们首先判断了用户输入的关键词是否为空, 如果为空则直接 return, 而关键词用于在百度中搜索.

之后, 我们使用了 IEBrowser 的 Navigate 和 IEFlow 的 Wait 方法来导航并等待载入百度页面.Wait 方法用于让程序等待某个条件成立后才继续向下执行, 而代码中我们指定的是一个UrlCondition, 也就是一个页面条件, StringCompareMode 设置为 StartWith 表示等待地址以"http://www.baidu.com/" 开始的页面载入.

当页面载入之后, 我们执行 IEBrowser 的 InstallJQuery 方法来为页面安装 jQuery 脚本. 而InstallJQuery 方法有两种形式, 一种可以载入字符串作为脚本, 另一种是传递一个 Uri 作为参数, Uri是一个网络的地址或者一个本地文件的地址, 在示例中, 我们使用的是第一种形式, 类 JQuery 的静态属性 CodeMin 返回了 jQuery 的压缩后的脚本.

面, 我们将两行重要的代码重新列出, 在代码中, 我们传递 JQuery 类作为参数给IEBrowser 的 ExecuteJQuery 方法, 以在 WebBrowser 的页面中执行 jQuery 脚本.

ie.ExecuteJQuery ( JQuery.Create ( "'#kw'" ).Val ( "'" + this.txtKeyword.Text.Trim ( ) + "'" ) );

ie.ExecuteJQuery ( JQuery.Create ( "'#su'" ).Click ( ) );

我们可以使用 JQuery 的静态方法 Create, 或者 new JQuery 来创建一个 JQuery 的实例. 第一行的JQuery 对象所对应的 jQuery 脚本为 $('#kw').val('<用户输入的关键词>');, 而第二行的 JQuery 对象对应了 $('#su').click();.

在这里, JQuery 类和实际的 js 脚本中的 jQuery 的用法几乎是相同的, 只不过 Create 表示 $, 而jQuery 的成员在 JQuery 类中都变成了大写, 但成员名称并无变化. JQuery 类用于在 .NET 中构建jQuery 脚本并作为参数传递给 IEBrowser 执行.

其实, 你也可以通过 IEBrowser 的 ExecuteScript 来直接执行 jQuery 脚本, 其效果也是完全一样的.

而这两句 jQuery 的含义, 表示将用户输入的关键词填入到页面的搜索框中, 然后点击搜索按钮, kw 和 su 分别是百度页面中的搜索框和搜索按钮的 id, '#kw' 则表示取 id 为 kw 的页面元素, 这些都是设计到 jQuery 本身的内容了, 大家可以参考 http://jquery.com .

码到这里也就讲完了, 需要看实际运行效果的话, 可以参照下面的演示.

IEBrowser 是开源共享的代码, 可以在 http://code.google.com/p/zsharedcode/wiki/Download 页面下载 dll 或者是源代码

备用下载链接:IEBrowser.2.5.0.Debug.NOPARAM.zip

黄聪:WebBrowser执行和安装jQuery脚本(IEBrowse)的更多相关文章

  1. 黄聪:GeckoFX如何引用jquery文件并执行自定义JS

    var jquery_script = gwb.Document.CreateElement("script"); jquery_script.SetAttribute(" ...

  2. 黄聪:主机宝安装wordpress注意事项

    1.web环境安装PHP使用5.4.21-nts-03版本 2.web环境安装Mysql使用5.5.45版本 3.创建好站点后,给站点的public_html目录添加IIS_xxx用户最高权限,添加N ...

  3. 黄聪:Microsoft Enterprise Library 5.0 系列教程(五) Data Access Application Block

    原文:黄聪:Microsoft Enterprise Library 5.0 系列教程(五) Data Access Application Block 企业库数据库访问模块通过抽象工厂模式,允许用户 ...

  4. winform下利用webBrowser执行javascript

    目前很多网站为了防止恶意提交表单信息,大多都采用了加密的方式对提交信息进行处理,加密处理后通过POST提交给服务器验证,这种操作一般都是用Javascipt进行加密,若是我们想要正确提交表单到网站,就 ...

  5. 黄聪:如何使用Add-on SDK开发一个自己的火狐扩展

    火狐开放了扩展的开发权限给程序员们,相信很多人都会希望自己做一些扩展来方便一些使用. 我最近做一些项目也需要开发一个火狐扩展,方便收集自己需要的数据,因此研究了几天怎么开发,现在已经差不多完成了,就顺 ...

  6. centos环境自动化批量安装软件脚本

    自动化安装jdk软件部署脚本 准备工作: 1.在执行脚本的服务器上生成免密码公钥: 安装expect命令 yum install -y expect ssh-keygen 三次回车 2.将jdk-7u ...

  7. 黄聪:《跟黄聪学WordPress主题开发》

    又一个作品完成!<跟黄聪学Wordpress主题开发>,国内最好的Wordpress主题模版开发视频教程!! 目录预览: WordPress官方源文件层式结构讲解 WordPress数据库 ...

  8. 黄聪:Microsoft Enterprise Library 5.0 系列教程(六) Security Application Block

    原文:黄聪:Microsoft Enterprise Library 5.0 系列教程(六) Security Application Block 开发人员经常编写需要安全功能的应用程序.这些应用程序 ...

  9. 黄聪:Microsoft Enterprise Library 5.0 系列教程(七) Exception Handling Application Block

    原文:黄聪:Microsoft Enterprise Library 5.0 系列教程(七) Exception Handling Application Block 使用企业库异常处理应用程序模块的 ...

随机推荐

  1. uva624 CD   01背包+输出最优解

    link:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...

  2. MATLAB符号运算 分类: 图像处理 2015-07-31 22:53 3人阅读 评论(0) 收藏

    1.符号运算 使用MATLAB可以进行多项式乘除运算,也可以进行因式分解. 例1. 多项式乘除运算(x+3)3 >> syms x; >> expand((x+3)^3) an ...

  3. puppet安装配置及使用

     puppet安装前准备 一.服务器信息 master端:10.10.10.201 master.fansik.com slave端:10.10.10.156 slave.fansik.com 三台机 ...

  4. click 绑定(一)无参数的click 事件绑定

    目的 click绑定在DOM元素上添加事件句柄以便元素被点击的时候执行定义的JavaScript 函数.大部分是用在button,input和连接a上,但是可以在任意元素上使用.   例子 <d ...

  5. 【NOIP2010】引水入城

    以前一直以为是什么高端DP,看了题解才发现是水题,老是这样看题解才能写出来到赛场上怎么办嘛QAQ 原题: 在一个遥远的国度,一侧是风景秀美的湖泊,另一侧则是漫无边际的沙漠.该国的行政区划十分特殊,刚好 ...

  6. Redis 源码解析

    http://programmers.stackexchange.com/questions/49550/which-hashing-algorithm-is-best-for-uniqueness- ...

  7. sed的实际用法举例

    sed:Stream Editor文本流编辑,sed是一个“非交互式的”面向字符流的编辑器.能同时处理多个文件多行的内容,可以不对原文件改动,把整个文件输入到屏幕,可以把只匹配到模式的内容输入到屏幕上 ...

  8. C# 中如何判断某个字符串是否为空的方法

    C# 中如何判断某个字符串是否为空的方法 分享了三个方法来判断字符串是否为空 引自:http://www.itokit.com/2012/0724/74618.html 1. 三种常用的字符串判空串方 ...

  9. TKinter的常用组件

    python提供了多个图形开发界面的库,几个常用Python GUI库如下: Tkinter: Tkinter模块("Tk 接口")是Python的标准Tk GUI工具包的接口.T ...

  10. 使用Axure制作App原型应该怎样设置尺寸?

    使用Axure制作的原型,如果你没有设置自适应视图的话它是不会自动适应任何设备的. 若要解释清楚这个问题需要的篇幅比较长,请大家自行参考 Point/Pixel/PPI/DPI 的意思和它们之间的关系 ...