使 WebBrowser 更简单的新加和执行 js, 可安装 jQuery 脚本的 C# 开源代码 - IEBrowser [1]...
2 function add(num1, num2) {
3 return num1 + num2;
4 }
5 </script>
则, 通过如下代码即可调用 add 函数:
2 this.browser.Document.InvokeScript ( "add", new object[] { 1, 2 } );
IEBrowser 提供在 WebBrowser 的页面中添加执行新 js 脚本的功能.
2 IEBrowser ie = new IEBrowser ( this.webBrowser );
3
4 // 定义 javascript 脚本, 声明一个 showMessage 函数.
5 string showMessageScript = "function showMessage(message){alert('消息:' + message);}";
6 // 将脚本安装到 WebBrowser 中.
7 ie.InstallScript ( showMessageScript );
8
9 // 执行脚本, 调用 showMessage 函数.
10 ie.ExecuteScript ( "showMessage('哈哈!');" );
使用 IEBrowser 的 InstallScript 方法即可完成添加 js 脚本的功能, 而 ExecuteScript 则可以执行 js 脚本. InstallScript 除了可以直接传递包含脚本的字符串外, 也可以是脚本的地址.
2 IEBrowser ie = new IEBrowser ( this.webBrowser );
3
4 // 导航到页面 http://www.google.com.hk/.
5 ie.Navigate ( "http://www.google.com.hk/" );
6
7 // 等待页面载入完毕.
8 ie.IEFlow.Wait ( new UrlCondition ( "wait", "http://www.google.com.hk", StringCompareMode.StartWith ) );
9
10 // 安装跟踪脚本, 执行 jquery 必需.
11 ie.InstallTrace ( );
12
13 // 安装本地的 jquery 脚本.
14 ie.InstallJQuery ( new Uri ( Path.Combine ( AppDomain.CurrentDomain.BaseDirectory, @"jquery-1.5.min.js" ) ) );
15
16 // 执行 jquery 脚本 $('*').length, 获得页面上总元素个数.
17 Console.WriteLine ( "页面上共有 {0} 个元素", ie.ExecuteJQuery ( JQuery.Create ( "'*'" ).Length ( ) ) );
18
19 // 执行 jquery 脚本 $('a'), 获得页面上所有的 a 元素并将结果保存在 __jAs 变量中.
20 ie.ExecuteJQuery ( JQuery.Create ( "'a'" ), "__jAs" );
21
22 // 得到 __jAs 变量中包含的 a 元素的个数.
23 int count = ie.ExecuteJQuery<int> ( JQuery.Create ( "__jAs" ).Length ( ) );
24
25 for ( int index = 0; index < count; index++ )
26 {
27 // 得到 __jAs 变量中索引为 index 的 a 元素, 并保存在 __jA 变量中.
28 ie.ExecuteJQuery ( JQuery.Create ( "__jAs" ).Eq ( index.ToString ( ) ), "__jA" );
29
30 // 输出 a 元素的 innerText 和 href 属性.
31 Console.WriteLine ( string.Format (
32 "a[{0}], '{1}', '{2}'",
33 index,
34 ie.ExecuteJQuery<string> ( JQuery.Create ( "__jA" ).Text ( ) ),
35 ie.ExecuteJQuery<string> ( JQuery.Create ( "__jA" ).Attr ( "'href'" ) )
36 )
37 );
38 }
调用 IEBrowser 的 InstallTrace 和 InstallJQuery 即可安装 jQuery 脚本, 脚本的位置可以在本地或者网络. 之后, 可以配合 ExecuteJQuery 方法和 JQuery 类在页面上完成各种 jQuery 操作. JQuery 类参照 jQuery 的 js 脚本命名, 很容易掌握.
转载于:https://www.cnblogs.com/zoyobar/archive/2011/05/21/IEBrowser_1.html
使 WebBrowser 更简单的新加和执行 js, 可安装 jQuery 脚本的 C# 开源代码 - IEBrowser [1]...相关推荐
- 隔离见证_云见证–一种使我们的生活更轻松的新功能
隔离见证 In order to have a well-configured cluster we need to setup the quorum properly, but there's mo ...
- gazebo 直接获取传感器数据_5个使传感器更简单的技巧
传感器遍布地球表面和周围空间,为世界提供数据.这些廉价的传感器是物联网背后的驱动力之一,也是我们社会现在面临的数字革命.然而,连接到传感器并从传感器获取数据并不总是直截了当或容易的.这里有五个提示,可 ...
- 自动加域脚本,bat和vbs配合使用,使加域操作更简单
我的实验:编写自动加域脚本(总结) 1.自动加域脚本的目的. A.减少重复繁杂的必要操作,提高工作效率. B.使加域操作更简单,更有乐趣. 2.自动加域的实现方式,分为三个步骤. A.使用bat和vb ...
- e300氛围灯哪里调节_让快乐来得更简单!体验新宝骏E300/E300 PLUS
有停车焦虑的小伙伴一定都想拥有一辆微型车,无论你多晚回家,只要有一小块空挡就能泊车,然后上楼睡觉.所谓快乐,莫过于此. 在纯电动微型车领域,宝骏可以说是经验最为丰富的厂家之一.相继推出了E100和E2 ...
- Android TV Demo 工程,其中包含 TV 常用的自定义控件,飞框效果实现,外边框效果实现,UI 控件焦点自动处理,使 TV 开发更简单,更高效。
TVLibraryDemo 项目地址:zhangtiansheng/TVLibraryDemo 简介:Android TV Demo 工程,其中包含 TV 常用的自定义控件,飞框效果实现,外边框效果 ...
- 更改计算机bios密码怎么办,简单五步设置BIOS密码使电脑更安全
欢迎来到学习啦,本文为大家提供如何设置BIOS密码使电脑更安全,欢迎大家阅读学习. 步骤1 启动电脑,然后按[Del]键进入BIOS设置主界面. 步骤2 在BIOS主菜单中,有两个设置密码的选项,它们 ...
- linux取消bios密码设置密码,简单五步设置BIOS密码使电脑更安全
欢迎来到学习啦,本文为大家提供如何设置BIOS密码使电脑更安全,欢迎大家阅读学习. 步骤1 启动电脑,然后按[Del]键进入BIOS设置主界面. 步骤2 在BIOS主菜单中,有两个设置密码的选项,它们 ...
- 让CoreData更简单些
从简书迁移到掘金 前言 本文并不是CoreData从入门到精通之类的教程, 并不会涉及到过多的原理概念描述, 而是介绍如何让CoreData的使用变得更加简单明了, 方便亲民. 全文约六千字, 预计花 ...
- Nutanix:将IT基础架构“隐形”,让云更简单
Nutanix以超融合被全球用户熟知,作为超融合的先驱者,该公司凭借着领先的技术以及在产品与服务上不断的精益求精,获得了许多企业客户的认可.虽然"超融合"标签显眼,但在云的大趋势下 ...
最新文章
- 【OpenCV】图像的通道分离
- 修改sh文件_修改Android分区大小
- linux怎么查端口是否被占用,LINUX中如何查看某个端口是否被占用
- TCP、UDP数据包大小的限制
- SequoiaDB 系列之五 :源码分析之main函数
- KDD走进阿里 数百专家聚集探讨产学研一体化
- mysql行级锁作用_Mysql事务及行级锁的理解
- 固定 顶部_一楼小院想建阳光房?固定的怕违建,那这样可伸缩的阳光房怎么样...
- Java 获取向量中的最大值
- 基于公开数据的特殊人群在线活动特征挖掘
- JQuery jsonp使用小记
- C#-设置button颜色
- 不要安全要性能,禁用补丁提高CPU性能
- 苹果系统自带的计算机怎么恢复出厂设置,苹果电脑恢复出厂化设置的教程_苹果电脑怎样恢复出厂系统-win7之家...
- android录制视频设置分辨率,Android录制视频的全面屏适配
- 输出乱码疑难杂症总结及解决方案
- hyperf——代码赏析
- 实现Mac窗口最小化动画效果
- 高通骁龙处理器天梯排行榜2022 骁龙处理器发布时间排行
- 拓扑结构计算机网络结构,计算机网络的常见的七种拓扑结构
热门文章
- laravel-mix 使用
- Android - MVP个人愚见
- 补8.python之面相对象part.7(类相关函数的补充)
- Laravel 集成 JPush 极光推送指北
- 开源:Angularjs示例--Sonar中项目使用语言分布图(CoffeeScript版)
- Android 数据库之Cursor
- 我记录网站综合系统 -- 技术原理解析[10:PermissionChecker流程]
- ubuntu系统初始化
- 洛谷P4216 [SCOI2015]情报传递(树剖+主席树)
- 国内IDC即将迎来快速增长时期