# web.mshtml 库模块帮助文档

## web 成员列表 <a id="web" href="#web">&#x23;</a>

### web.mshtml <a id="web.mshtml" href="#web.mshtml">&#x23;</a>
MSHTML（htmlfile）支持库

### web.mshtml() <a id="web.mshtml" href="#web.mshtml">&#x23;</a>
创建 HTML文档对象  

[返回对象:mshtmObject](#mshtmObject)

### web.mshtml(doc) <a id="web.mshtml" href="#web.mshtml">&#x23;</a>
创建HTML文档对象  
可选指定一个document对象

### web.mshtml(wb,框架名) <a id="web.mshtml" href="#web.mshtml">&#x23;</a>
创建HTML文档对象  
可选指定一个wb窗体,以及框架名

## mshtmObject 成员列表 <a id="mshtmObject" href="#mshtmObject">&#x23;</a>

### mshtmObject.body <a id="mshtmObject.body" href="#mshtmObject.body">&#x23;</a>
网页 body 元素  

[返回对象:eleObject](#eleObject)

### mshtmObject.doScript <a id="mshtmObject.doScript" href="#mshtmObject.doScript">&#x23;</a>

```aardio
var js = /**  
	alert("Javascript!");  
**/  
mshtmObject.doScript(js, )
```

### mshtmObject.document <a id="mshtmObject.document" href="#mshtmObject.document">&#x23;</a>
文档对象  
document.

### mshtmObject.documentMode <a id="mshtmObject.documentMode" href="#mshtmObject.documentMode">&#x23;</a>
返回网页当前兼容模模式版本号,默认值为7,  
可能的值为6,7,8,9,11等等,5为网页上没有写DOCTYPE导致的怪异模式,  
可在页面中通过X-UA-Compatible设置兼容模式,  
也可用web.form.emulation 函数改变当前进程的默认兼容模式,

### mshtmObject.eachAll("DIV",父节点) <a id="mshtmObject.eachAll" href="#mshtmObject.eachAll">&#x23;</a>

```aardio
//创建迭代器,迭代页面所有输入控件,例：  
for i,ele in mshtmObject.eachAll("DIV" ,mshtmObject.getEle("id") ) {  

}
```

```aardio
//创建迭代器,迭代页面所有输入控件,例：  
for i,ele in mshtmObject.eachAll("DIV" ,mshtmObject.getEle("id") ) {  

}
```

### mshtmObject.eachAll("input") <a id="mshtmObject.eachAll" href="#mshtmObject.eachAll">&#x23;</a>

```aardio
//创建迭代器,迭代页面所有输入控件,例：  
for i,ele in mshtmObject.eachAll("input") {  

}
```

```aardio
//创建迭代器,迭代页面所有输入控件,例：  
for i,ele in mshtmObject.eachAll("input") {  

}
```

### mshtmObject.eachAll("input","框架名") <a id="mshtmObject.eachAll" href="#mshtmObject.eachAll">&#x23;</a>

```aardio
//创建迭代器,迭代页面所有输入控件,例：  
for i,ele in mshtmObject.eachAll("input","框架名") {  

}
```

```aardio
//创建迭代器,迭代页面所有输入控件,例：  
for i,ele in mshtmObject.eachAll("input","框架名") {  

}
```

### mshtmObject.eachAll() <a id="mshtmObject.eachAll" href="#mshtmObject.eachAll">&#x23;</a>

```aardio
//创建迭代器,迭代页面所有节点,例：  
for i,ele in mshtmObject.eachAll() {  

}  

[返回对象:eleObject](#eleObject)
```

```aardio
//创建迭代器,迭代页面所有节点,例：  
for i,ele in mshtmObject.eachAll() {  

}  

[返回对象:eleObject](#eleObject)
```

### mshtmObject.eachEle(查询参数表) <a id="mshtmObject.eachEle" href="#mshtmObject.eachEle">&#x23;</a>
eachQuery 方法的别名。  
创建搜索并遍历标签元素（element）的迭代器。

### mshtmObject.eachFrames("框架名") <a id="mshtmObject.eachFrames" href="#mshtmObject.eachFrames">&#x23;</a>

```aardio
//创建迭代器,迭代页面所有框架窗口,例：  
for i,ele in mshtmObject.eachFrames() {  

}
```

### mshtmObject.eachLinks() <a id="mshtmObject.eachLinks" href="#mshtmObject.eachLinks">&#x23;</a>
[返回对象:eleObject](#eleObject)

### mshtmObject.eachLinks(父节点) <a id="mshtmObject.eachLinks" href="#mshtmObject.eachLinks">&#x23;</a>

```aardio
//创建迭代器,迭代页面所有超链接,例：  
for i,ele in mshtmObject.eachLinks(/*父节点或框架名*/) {  

}
```

```aardio
//创建迭代器,迭代页面所有超链接,例：  
for i,ele in mshtmObject.eachLinks(/*父节点或框架名*/) {  

}
```

### mshtmObject.eachQuery(查询参数表) <a id="mshtmObject.eachQuery" href="#mshtmObject.eachQuery">&#x23;</a>

```aardio
for ele in mshtmObject.eachQuery(tagName="img"/*创建搜索并遍历元素的迭代器，内部调用 queryEles 方法。  

参数 @1 指定一个表对象，  
该参数表可包含一个或多个键值，用于匹配节点的属性值,  
可使用tagName属性指定节点的标签名,  
可使用parent属性指定开始查询节点的父节点，parent可以是ID或者节点对象。  
属性值使用 string.cmpMatch函数进行比对，  
等价于调用string.cmp函数进行忽略大小写的比较,  
并且在失败后调用 string.match函数使用模式匹配语法进行比较  

注意在匹配节点属性时有几个例外：  
parent属性不使用模式匹配进行比对，  
如果 tagName,id,name 属性指定的值不含标点则执行忽略大小写的完全匹配（禁用模式匹配和部分匹配）*/){  

}
```

### mshtmObject.eval <a id="mshtmObject.eval" href="#mshtmObject.eval">&#x23;</a>
运行js代码

### mshtmObject.eval("JS代码") <a id="mshtmObject.eval" href="#mshtmObject.eval">&#x23;</a>
返回表达式的值

### mshtmObject.exec("字符串参数") <a id="mshtmObject.exec" href="#mshtmObject.exec">&#x23;</a>
执行命令  
参数@2为传入参数,可省略  
参数@3指定是否显示交互界面,布尔值,可省略

### mshtmObject.execEle(ele,"字符串参数") <a id="mshtmObject.execEle" href="#mshtmObject.execEle">&#x23;</a>
执行命令  
参数@2为传入参数,可省略  
参数@3指定是否显示交互界面,布尔值,可省略

### mshtmObject.execWb( _OLECMDID , ,2 ) <a id="mshtmObject.execWb" href="#mshtmObject.execWb">&#x23;</a>
执行命令,  
参数@2为传入参数,可省略,  
参数@3指定UI交互选项:  
    1/*_OLECMDEXECOPT_PROMPTUSER*/为显示界面,  
    2/*_OLECMDEXECOPT_DONTPROMPTUSER*/为不显示界面

### mshtmObject.getDoc() <a id="mshtmObject.getDoc" href="#mshtmObject.getDoc">&#x23;</a>
`document.`

### mshtmObject.getDoc(框架名) <a id="mshtmObject.getDoc" href="#mshtmObject.getDoc">&#x23;</a>
获取文档对象  
参数可以是框架名,ID,基于0的索引,或者frame节点

### mshtmObject.getEle("字符串参数") <a id="mshtmObject.getEle" href="#mshtmObject.getEle">&#x23;</a>
返回一个节点对象或框架内子节点对象

### mshtmObject.getEle("字符串参数","框架名字") <a id="mshtmObject.getEle" href="#mshtmObject.getEle">&#x23;</a>
返回一个节点对象或框架内子节点对象

### mshtmObject.getEle() <a id="mshtmObject.getEle" href="#mshtmObject.getEle">&#x23;</a>
[返回对象:eleObject](#eleObject)

### mshtmObject.getEles("字符串参数") <a id="mshtmObject.getEles" href="#mshtmObject.getEles">&#x23;</a>
返回同名的所有节点,例如  
ele = wb.getEles("节点名字");  
ele(1).setAttribute("属性名字", "修改第一个节点属性值");

### mshtmObject.getEles("字符串参数","框架名字") <a id="mshtmObject.getEles" href="#mshtmObject.getEles">&#x23;</a>
返回同名的所有节点,例如  
ele = wb.getEles("节点名字");  
ele(1).setAttribute("属性名字", "修改第一个节点属性值");

### mshtmObject.getEles() <a id="mshtmObject.getEles" href="#mshtmObject.getEles">&#x23;</a>
[返回对象:webFormElesObject](#webFormElesObject)

### mshtmObject.getElesByTag("head") <a id="mshtmObject.getElesByTag" href="#mshtmObject.getElesByTag">&#x23;</a>
返回指定标记的所有节点

### mshtmObject.getElesByTag("head","框架名字") <a id="mshtmObject.getElesByTag" href="#mshtmObject.getElesByTag">&#x23;</a>
返回指定标记的所有节点

### mshtmObject.getElesByTag() <a id="mshtmObject.getElesByTag" href="#mshtmObject.getElesByTag">&#x23;</a>
[返回对象:webFormElesObject](#webFormElesObject)

### mshtmObject.getScript() <a id="mshtmObject.getScript" href="#mshtmObject.getScript">&#x23;</a>
[返回对象:jsGlobalObject](#jsGlobalObject)

### mshtmObject.getScript(框架名) <a id="mshtmObject.getScript" href="#mshtmObject.getScript">&#x23;</a>
网页脚本对象

### mshtmObject.go("字符串参数") <a id="mshtmObject.go" href="#mshtmObject.go">&#x23;</a>
打开网址或本地路径  
注意驱动器根目录要以反斜杠结束

### mshtmObject.go("字符串参数","自定义http头") <a id="mshtmObject.go" href="#mshtmObject.go">&#x23;</a>
打开网址

### mshtmObject.go("字符串参数","自定义http头","目标框架") <a id="mshtmObject.go" href="#mshtmObject.go">&#x23;</a>
打开网址

### mshtmObject.head <a id="mshtmObject.head" href="#mshtmObject.head">&#x23;</a>
网页 head 元素  

[返回对象:eleObject](#eleObject)

### mshtmObject.html <a id="mshtmObject.html" href="#mshtmObject.html">&#x23;</a>

```aardio
mshtmObject.html = /**  
<!doctype html>  
<html>  
<head>  
    <meta charset="utf-8">  
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />  
</head>  
<body>  
    <div></div>  
</body>  
</html>  
**/
```

### mshtmObject.jQuery("字符串参数") <a id="mshtmObject.jQuery" href="#mshtmObject.jQuery">&#x23;</a>
jQuery选择器,并可自动载入jQuery库  
n首次调用按需加载jQuery v1.10:  
 "/res/js/jQuery/jQuery.min.js"  
失败则通过网络CDN服务器下载jquery-1.9.0.min.js  

注意 jQuery v1.6.3 以上 ajax 函数才会支持 res 协议访问 EXE 资源文件  
IE11 内核默认已阻止 ajax 访问本地文件,  
改用 wsock.tcp.simpleHttpServer/asyncHttpServer 访问本地文件即可

### mshtmObject.jQuery() <a id="mshtmObject.jQuery" href="#mshtmObject.jQuery">&#x23;</a>
无参数时返回jQuery类对象  
首次调用按需加载 jQuery v1.9:  
 "/res/js/jQuery/jQuery.min.js"  
失败则通过网络CDN服务器下载jquery-1.9.0.min.js  

[返回对象:jQueryObject](#jQueryObject)

### mshtmObject.jsConstructor("Array") <a id="mshtmObject.jsConstructor" href="#mshtmObject.jsConstructor">&#x23;</a>
获取 JS 使用 new 语句创建对象的构造函数。  
参数 @1 可以是 JS 对象，或字符串类型的对象名字。

### mshtmObject.jsNew("Array") <a id="mshtmObject.jsNew" href="#mshtmObject.jsNew">&#x23;</a>
调用 JS 的 new 语句构造 JS 对象。  
参数 @1 可以是 JS 对象，或字符串类型的对象名字。  
可指定一个或多个构造参数。

### mshtmObject.loadScript("js地址","框架名字") <a id="mshtmObject.loadScript" href="#mshtmObject.loadScript">&#x23;</a>
动态加载js文件

### mshtmObject.loadScript("js地址","框架名字","utf-8") <a id="mshtmObject.loadScript" href="#mshtmObject.loadScript">&#x23;</a>
动态加载js文件\N可选用第三个参数指定文件编码

### mshtmObject.loadcode(HTML模板代码) <a id="mshtmObject.loadcode" href="#mshtmObject.loadcode">&#x23;</a>
使用 aardio 模板语法加载HTML文件  
可选在第二个参数中传入模板参数,  
模板代码中使用owner参数获取首个模板参数

### mshtmObject.post("字符串参数","k=v&k2=v2") <a id="mshtmObject.post" href="#mshtmObject.post">&#x23;</a>
自动提交表单

### mshtmObject.post("字符串参数","k=v&k2=v2","自定义http头") <a id="mshtmObject.post" href="#mshtmObject.post">&#x23;</a>
自动提交表单

### mshtmObject.post("字符串参数","k=v&k2=v2","自定义http头","目标框架") <a id="mshtmObject.post" href="#mshtmObject.post">&#x23;</a>
自动提交表单

### mshtmObject.queryEle <a id="mshtmObject.queryEle" href="#mshtmObject.queryEle">&#x23;</a>
搜索并返回单个节点对象。

### mshtmObject.queryEle(selectors) <a id="mshtmObject.queryEle" href="#mshtmObject.queryEle">&#x23;</a>
参数 @1 指定字符串时可支持有限的简单 CSS 选择器：  
tagName, .class, [attr], #id ，例如 "div#id" 。  
解析后的查询条件仍然会被被换为表参数，查询值可使用 aardio 模式匹配语法。  

解析 selectors 参数的代码非常简单（只有几句代码），  
因此不支持复杂语法以及多层级选择器

### mshtmObject.queryEle(查询参数表,超时值) <a id="mshtmObject.queryEle" href="#mshtmObject.queryEle">&#x23;</a>
参数@1指定一个表对象，  
该参数表可包含一个或多个键值，用于匹配节点的属性值,  
可使用 parent 属性指定开始查询节点的父节点，parent可以是ID或者节点对象。  
属性值使用 string.cmpMatch函数进行比对，  
等价于调用 string.cmp 函数进行忽略大小写的比较,  
并且在失败后调用 string.match函数使用模式匹配语法进行比较。  

注意在匹配节点属性时有几个例外：  
parent属性不使用模式匹配进行比对，  
tagName,id,name属性如果匹配值不含标点则使用忽略大小写的完全比对（禁用模式匹配和部分匹配）  

可选使用参数@2指定获取网页文档对象的超时值，单位毫秒，此参数一般不需要指定

### mshtmObject.queryEles <a id="mshtmObject.queryEles" href="#mshtmObject.queryEles">&#x23;</a>
搜索节点对象,该函数返回的是一个数组,  
但可以通过调用数组的成员函数批量调用节点的同名成员函数,支持click函数,  
即使找不到节点,此函数也会返回一个空数组,

### mshtmObject.queryEles() <a id="mshtmObject.queryEles" href="#mshtmObject.queryEles">&#x23;</a>
[返回对象:webFormElesObject](#webFormElesObject)

[返回对象:webFormElesObject](#webFormElesObject)

### mshtmObject.queryEles(selectors) <a id="mshtmObject.queryEles" href="#mshtmObject.queryEles">&#x23;</a>
参数 @1 指定字符串时可支持有限的简单 CSS 选择器：  
tagName, .class, [attr], #id ，例如 "div#id" 。  
解析后的查询条件仍然会被被换为表参数，查询值可使用 aardio 模式匹配语法。  

解析 selectors 参数的代码非常简单（只有几句代码），  
因此不支持复杂语法以及多层级选择器

### mshtmObject.queryEles(查询参数表,超时值) <a id="mshtmObject.queryEles" href="#mshtmObject.queryEles">&#x23;</a>
参数@1指定一个表对象，  
该参数表可包含一个或多个键值，用于匹配节点的属性值,  
可使用parent属性指定开始查询节点的父节点，parent可以是ID或者节点对象。  
属性值使用 string.cmpMatch函数进行比对，  
等价于调用string.cmp函数进行忽略大小写的比较,  
并且在失败后调用 string.match函数使用模式匹配语法进行比较。  

注意在匹配节点属性时有几个例外：  
parent属性不使用模式匹配进行比对，  
tagName,id,name属性如果匹配值不含标点则使用忽略大小写的完全比对（禁用模式匹配和部分匹配）  

可选使用参数@2指定获取网页文档对象的超时值，单位毫秒，此参数一般不需要指定

### mshtmObject.querySelector("CSS选择器") <a id="mshtmObject.querySelector" href="#mshtmObject.querySelector">&#x23;</a>
查询并返回节点  
web.form 自 Win7，IE8 开始支持该函数

### mshtmObject.querySelector() <a id="mshtmObject.querySelector" href="#mshtmObject.querySelector">&#x23;</a>
[返回对象:eleObject](#eleObject)

### mshtmObject.querySelectorAll("CSS选择器") <a id="mshtmObject.querySelectorAll" href="#mshtmObject.querySelectorAll">&#x23;</a>
查询并返回节点集合  
web.form 自 Win7，IE8 开始支持该函数

### mshtmObject.querySelectorAll() <a id="mshtmObject.querySelectorAll" href="#mshtmObject.querySelectorAll">&#x23;</a>
[返回对象:eleObject](#eleObject)

### mshtmObject.script <a id="mshtmObject.script" href="#mshtmObject.script">&#x23;</a>
网页脚本对象  

[返回对象:jsGlobalObject](#jsGlobalObject)

### mshtmObject.type <a id="mshtmObject.type" href="#mshtmObject.type">&#x23;</a>
返回当前加载的文件类型  
例如doc文件返回Microsoft Word Document

### mshtmObject.waitDoc() <a id="mshtmObject.waitDoc" href="#mshtmObject.waitDoc">&#x23;</a>
`document.`

### mshtmObject.waitEle("字符串参数") <a id="mshtmObject.waitEle" href="#mshtmObject.waitEle">&#x23;</a>
返回一个节点对像或框架内子节点对像  
并等待加载完成

### mshtmObject.waitEle("字符串参数","字符串参数",20000) <a id="mshtmObject.waitEle" href="#mshtmObject.waitEle">&#x23;</a>
返回一个节点对像  
第三个参数指定超时值(毫秒)

### mshtmObject.waitEle() <a id="mshtmObject.waitEle" href="#mshtmObject.waitEle">&#x23;</a>
[返回对象:eleObject](#eleObject)

### mshtmObject.waitQueryEles() <a id="mshtmObject.waitQueryEles" href="#mshtmObject.waitQueryEles">&#x23;</a>
[返回对象:webFormElesObject](#webFormElesObject)

### mshtmObject.waitQueryEles(参数表,超时,时间间隔,完全加载) <a id="mshtmObject.waitQueryEles" href="#mshtmObject.waitQueryEles">&#x23;</a>
参数@1指定一个表对象，  
该参数表可包含一个或多个键值，用于匹配节点的属性值,  
可使用parent属性指定开始查询节点的父节点，parent可以是ID或者节点对象。  
属性值使用 string.cmpMatch函数进行比对，  
等价于调用string.cmp函数进行忽略大小写的比较。  
并且在失败后调用 string.match函数使用模式匹配语法进行比较。  

注意在匹配节点属性时有几个例外：  
parent属性不使用模式匹配进行比对，  
tagName,id,name属性如果匹配值不含标点则使用忽略大小写的完全比对（禁用模式匹配和部分匹配）  

可选使用参数@2指定超时值，单位毫秒，,其他参数可选

### mshtmObject.waitQuerySelector("CSS选择器",框架,超时,是否等待完成) <a id="mshtmObject.waitQuerySelector" href="#mshtmObject.waitQuerySelector">&#x23;</a>
等待指定节节点  
web.form 自 Win7，IE8 开始支持该函数，  
除参数@1以外，其他参数可选

### mshtmObject.waitQuerySelector() <a id="mshtmObject.waitQuerySelector" href="#mshtmObject.waitQuerySelector">&#x23;</a>
[返回对象:eleObject](#eleObject)

### mshtmObject.write("字符串参数") <a id="mshtmObject.write" href="#mshtmObject.write">&#x23;</a>
将字符串值写入网页、不允许追加

将字符串值写入网页

通过字符串参数载入HTML文件源码

### mshtmObject.write("字符串参数","框架名") <a id="mshtmObject.write" href="#mshtmObject.write">&#x23;</a>
将字符串值写入框架网页、不允许追加

将字符串值写入框架网页、不允许追加
