InternetExplorer.Application对象的Documen属性(转帖)
document 文挡对象 - JavaScript脚本语言描述
否则会提示你一个错误信息 "引用的元素为空或者不是对象"
---------------------------------------------------------------------
对象属性
document.title //设置文档标题等价于HTML的<title>标签
document.bgColor //设置页面背景色
document.fgColor //设置前景色(文本颜色)
document.linkColor //未点击过的链接颜色
document.alinkColor //激活链接(焦点在此链接上)的颜色
document.vlinkColor //已点击过的链接颜色
document.URL //设置URL属性从而在同一窗口打开另一网页
document.fileCreatedDate //文件建立日期,只读属性
document.fileModifiedDate //文件修改日期,只读属性
document.fileSize //文件大小,只读属性
document.cookie //设置和读出cookie
document.charset //设置字符集 简体中文:gb2312
---------------------------------------------------------------------
对象方法
document.write() //动态向页面写入内容
document.createElement(Tag) //创建一个html标签对象
document.getElementById(ID) //获得指定ID值的对象
document.getElementsByName(Name) //获得指定Name值的对象
---------------------------------------------------------------------
images集合(页面中的图象)
a)通过集合引用
document.images //对应页面上的<img>标签
document.images.length //对应页面上<img>标签的个数
document.images[0] //第1个<img>标签
document.images[i] //第i-1个<img>标签
b)通过nane属性直接引用
<img name="oImage">
document.images.oImage //document.images.name属性
c)引用图片的src属性
document.images.oImage.src //document.images.name属性.src
d)创建一个图象
var oImage
oImage = new Image()
document.images.oImage.src="http://www.tongming.org/1.jpg"
//同时在页面上建立一个<img>标签与之对应就可以显示
<html>
<img name=oImage>
<script language="javascript">
var oImage
oImage = new Image()
document.images.oImage.src="http://www.tongming.org/1.jpg"
</script>
</html>
----------------------------------------------------------------------
forms集合(页面中的表单)
a)通过集合引用
document.forms //对应页面上的<form>标签
document.forms.length //对应页面上<form>标签的个数
document.forms[0] //第1个<form>标签
document.forms[i] //第i-1个<form>标签
document.forms[i].length //第i-1个<form>中的控件数
document.forms[i].elements[j] //第i-1个<form>中第j-1个控件
b)通过标签name属性直接引用
<form name="Myform"><input name="myctrl"></form>
document.Myform.myctrl //document.表单名.控件名
-----------------------------------------------------------------------
<html>
<!--Text控件相关Script-->
<form name="Myform">
<input type="text" name="oText">
<input type="password" name="oPswd">
<form>
<script language="javascript">
//获取文本密码框的值
document.write(document.Myform.oText.value)
document.write(document.Myform.oPswd.value)
</script>
</html>
-----------------------------------------------------------------------
<html>
<!--Select控件相关Script-->
<form name="Myform">
<select name="oSelect">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
</form>
<script language="javascript">
//遍历select控件的option项
var length
length=document.Myform.oSelect.length
for(i=0;i<length;i++)
document.write(document.Myform.oSelect[i].value)
</script>
<script language="javascript">
//遍历option项并且判断某个option是否被选中
for(i=0;i<document.Myform.oSelect.length;i++){
if(document.Myform.oSelect[i].selected!=true)
document.write(document.Myform.oSelect[i].value)
else
document.write("<font color=red>"+document.Myform.oSelect[i].value+"</font>")
}
</script>
<script language="javascript">
//根据SelectedIndex打印出选中的option
//(0到document.Myform.oSelect.length-1)
i=document.Myform.oSelect.selectedIndex
document.write(document.Myform.oSelect[i].value)
</script>
<script language="javascript">
//动态增加select控件的option项
var oOption = document.createElement("OPTION");
oOption.text="4";
oOption.value="4";
document.Myform.oSelect.add(oOption);
</script>
<html>
例:
function GetUrl(sURL)
With CreateObject("InternetExplorer.Application")
.Navigate sURL
Do While (.Busy Or .ReadyState <> 4)
Wscript.Sleep 100
Loop
For Each sLink In .Document.Links
output=output&"|"&sLink
Next
End With
GetUrl=output
End function
debug.writeline GetUrl(“http://www.baidu.com”)
InternetExplorer.Application对象的一些属性
1、属性
Active
属性Active指明了应用程序是否处于活动状态且拥有焦点。
DialogHandle
属性DialogHandle提供使Delphi应用程序使用非Delphi对话框的一种机制。
ExeName
属性ExeName包含了可执行的应用程序文件名极其路径信息。
Handle
属性Handle提供了对应用程序主窗口句柄的访问。
HelpFile
属性HelpFile指明了应用程序用于显示帮助内容的文件名。
Hint
属性Hint指明了出现在帮助提示框(Help Hint box)中的文本字符串。
HintHidePause
属性HintHidePause 指定了鼠标尚未从控件或菜单项上移开、在隐藏帮助提示之前的时间间隔。
MainForm
属性MainForm唯一标识了应用程序的主窗体。
ShowMainForm
属性ShowMainForm确定了是否在应用程序启动时显示主窗体。
Terminated
属性Terminated报告程序是否收到终止程序的Windows消息WM_QUIT。
UpdateFormatSettings
属性UpdateFormatSettings指明了当用户改变系统配置时应用程序是否自动更新格式设置。
UpdateMetricSettings
属性UpdateMetricSettings属性指明是否对提示窗口字体和图标标题等相关设置进行更新。
2、方法
BringToFront
方法BringToFront设置应用程序中最近一次的活动窗口到桌面上所有窗口的最前端。
CreateForm
方法CreateForm方法用于创建新的窗体(form)。
HandleException
方法HandleException为应用程序的异常提供默认的句柄。
UnhookMainWindow
document 文挡对象 - JavaScript脚本语言描述
---------------------------------------------------------------------
另附上微软MSDN上的资料地址
---------------------------------------------------------------------
否则会提示你一个错误信息 "引用的元素为空或者不是对象"
---------------------------------------------------------------------
对象属性
document.title //设置文档标题等价于HTML的<title>标签
document.bgColor //设置页面背景色
document.fgColor //设置前景色(文本颜色)
document.linkColor //未点击过的链接颜色
document.alinkColor //激活链接(焦点在此链接上)的颜色
document.vlinkColor //已点击过的链接颜色
document.URL //设置URL属性从而在同一窗口打开另一网页
document.fileCreatedDate //文件建立日期,只读属性
document.fileModifiedDate //文件修改日期,只读属性
document.fileSize //文件大小,只读属性
document.cookie //设置和读出cookie
document.charset //设置字符集 简体中文:gb2312
---------------------------------------------------------------------
对象方法
document.write() //动态向页面写入内容
document.createElement(Tag) //创建一个html标签对象
document.getElementById(ID) //获得指定ID值的对象
document.getElementsByName(Name) //获得指定Name值的对象
---------------------------------------------------------------------
images集合(页面中的图象)
a)通过集合引用
document.images //对应页面上的<img>标签
document.images.length //对应页面上<img>标签的个数
document.images[0] //第1个<img>标签
document.images[i] //第i-1个<img>标签
b)通过nane属性直接引用
<img name="oImage">
document.images.oImage //document.images.name属性
c)引用图片的src属性
document.images.oImage.src //document.images.name属性.src
d)创建一个图象
var oImage
oImage = new Image()
document.images.oImage.src="http://www.tongming.org/1.jpg"
//同时在页面上建立一个<img>标签与之对应就可以显示
<html>
<img name=oImage>
<script language="javascript">
var oImage
oImage = new Image()
document.images.oImage.src="http://www.tongming.org/1.jpg"
</script>
</html>
----------------------------------------------------------------------
forms集合(页面中的表单)
a)通过集合引用
document.forms //对应页面上的<form>标签
document.forms.length //对应页面上<form>标签的个数
document.forms[0] //第1个<form>标签
document.forms[i] //第i-1个<form>标签
document.forms[i].length //第i-1个<form>中的控件数
document.forms[i].elements[j] //第i-1个<form>中第j-1个控件
b)通过标签name属性直接引用
<form name="Myform"><input name="myctrl"></form>
document.Myform.myctrl //document.表单名.控件名
-----------------------------------------------------------------------
<html>
<!--Text控件相关Script-->
<form name="Myform">
<input type="text" name="oText">
<input type="password" name="oPswd">
<form>
<script language="javascript">
//获取文本密码框的值
document.write(document.Myform.oText.value)
document.write(document.Myform.oPswd.value)
</script>
</html>
-----------------------------------------------------------------------
<html>
<!--Select控件相关Script-->
<form name="Myform">
<select name="oSelect">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
</form>
<script language="javascript">
//遍历select控件的option项
var length
length=document.Myform.oSelect.length
for(i=0;i<length;i++)
document.write(document.Myform.oSelect[i].value)
</script>
<script language="javascript">
//遍历option项并且判断某个option是否被选中
for(i=0;i<document.Myform.oSelect.length;i++){
if(document.Myform.oSelect[i].selected!=true)
document.write(document.Myform.oSelect[i].value)
else
document.write("<font color=red>"+document.Myform.oSelect[i].value+"</font>")
}
</script>
<script language="javascript">
//根据SelectedIndex打印出选中的option
//(0到document.Myform.oSelect.length-1)
i=document.Myform.oSelect.selectedIndex
document.write(document.Myform.oSelect[i].value)
</script>
<script language="javascript">
//动态增加select控件的option项
var oOption = document.createElement("OPTION");
oOption.text="4";
oOption.value="4";
document.Myform.oSelect.add(oOption);
</script>
<html>
例:
function GetUrl(sURL)
With CreateObject("InternetExplorer.Application")
.Navigate sURL
Do While (.Busy Or .ReadyState <> 4)
Wscript.Sleep 100
Loop
For Each sLink In .Document.Links
output=output&"|"&sLink
Next
End With
GetUrl=output
End function
debug.writeline GetUrl(“http://www.baidu.com”)
InternetExplorer.Application对象的一些属性
1、属性
Active
属性Active指明了应用程序是否处于活动状态且拥有焦点。
DialogHandle
属性DialogHandle提供使Delphi应用程序使用非Delphi对话框的一种机制。
ExeName
属性ExeName包含了可执行的应用程序文件名极其路径信息。
Handle
属性Handle提供了对应用程序主窗口句柄的访问。
HelpFile
属性HelpFile指明了应用程序用于显示帮助内容的文件名。
Hint
属性Hint指明了出现在帮助提示框(Help Hint box)中的文本字符串。
HintHidePause
属性HintHidePause 指定了鼠标尚未从控件或菜单项上移开、在隐藏帮助提示之前的时间间隔。
MainForm
属性MainForm唯一标识了应用程序的主窗体。
ShowMainForm
属性ShowMainForm确定了是否在应用程序启动时显示主窗体。
Terminated
属性Terminated报告程序是否收到终止程序的Windows消息WM_QUIT。
UpdateFormatSettings
属性UpdateFormatSettings指明了当用户改变系统配置时应用程序是否自动更新格式设置。
UpdateMetricSettings
属性UpdateMetricSettings属性指明是否对提示窗口字体和图标标题等相关设置进行更新。
2、方法
BringToFront
方法BringToFront设置应用程序中最近一次的活动窗口到桌面上所有窗口的最前端。
CreateForm
方法CreateForm方法用于创建新的窗体(form)。
HandleException
方法HandleException为应用程序的异常提供默认的句柄。
UnhookMainWindow
UnhookMainWindow方法用于释放由HookMainWindow方法挂在主窗体的程序。
-------------------------------------------------------------------------------------------------------------------------
InternetExplorer.Application的两个简单应用
应用一:自动登录163邮箱
MailID = "******" '账号 PassWd = "*****" '密码 Set ie = CreateObject("InternetExplorer.Application") ie.visible = True ie.navigate "http://mail.163.com/" 'While```Wend循环,当条件成立时循环 While ie.busy Or ie.readystate <> 4 Wend '等待IE加载完成 '账号的对比好像还是不完善,想用echo进行显示,但是报错(不同账号,同一密码时,如果上一次登陆后没有点击退出) if ie.document.getElementById("idInput").value = MailID Then Else '输入账号,如果账号里面有默认账号则不输入 ie.document.getElementById("idInput").value = "" ie.document.getElementById("idInput").value = MailID End If '如果默认账号不是需要输入的账号,则清空重新输入 ie.document.getElementById("pwdInput").value = PassWd '输入密码 ie.document.getElementById("LoginBtn").click '登录
readyState的5中状态:
状态 | 含义 |
0(未初始化) | 对象已建立,但是尚未初始化(尚未调用open方法) |
1(初始化) | 对象已建立,尚未调用send方法 |
2(发送数据) | send()方法已调用,但是当前的状态及http头未知 |
3(数据传送中) | 已接收部分数据,因为响应及http头不全,这时通过responseBody和responseText获取部分数据会出现错误 |
4(完成) | 数据接收完毕,此时可以通过通过responseBody和responseText获取完整的回应数据 |
getElementById的作用参见百科
代码中idInput获得如图:
pwdInput和LoginBtn同样,如下图:
应用二:让ie如弹窗一样从右下角弹出
'下边这个htmlfile对象可以获取显示的有效高度和宽度(有效,就是屏幕分辨率减去任务栏的高度或者宽度)
avW= createobject("htmlfile").parentWindow.screen.availWidth
avH= createobject("htmlfile").parentWindow.screen.availHeight
'下边这个internetExplorer.application对象是IE对象,功能强大
set roIe= Wscript.createobject("internetExplorer.application","IE_")
roIe.navigate("http://minisite.qq.com/gd/index.shtml") '''网吧应用时最好用内网的连接地址,要不可能很慢!
do
wscript.sleep 50
loop until roIe.readyState=4 ''readyState=4是等网页全部显示完成
with roIe
.Resizable = False ''定义新IE窗口不能拉伸
.width= 410 ''定义新IE的宽,依据你的web页面自己调整
.height= 258 ''定义新IE的高,依据你的web页面自己调整
.left= avW -410 ''定义新IE的出现的位置X,就是屏幕宽减去页面宽
.top= avH ''定义新IE的出现的位置Y,就是屏幕高
.toolbar = False ''定义新IE是否显示工具栏
.statusBar = False ''定义新IE是否显示状态栏
.addressBar = False ''定义新IE是否显示地址栏
.visible= true ''定义新IE的显示属性
.Document.Title = "网吧---奥运消息" ''定义新IE的Title
Do Until .ReadyState = 4 : WScript.Sleep 100 : Loop
end With
'下面的代码是让新IE窗口冒泡显示,自动关闭
CreateObject("Wscript.Shell").Appactivate roIe.Document.Title & " - " '激活一个应用程序窗口,Title为标题
For i = avH To avH-258 Step - 1
roIe.top= i
wscript.sleep 10 ''调节冒泡速度,可调整这个
Next
wscript.sleep 20000 ''冒泡停留时间,可调整这个
For i = avH-258 To avH Step +1
roIe.top= i
wscript.sleep 10
Next
roIe.quit
set roIe = Nothing '断开与对象的链接,释放内存,在大型工程中非常重要的一环,好习惯
Sub IE_OnQuit() '这个子程序应该没有被调用
Wscript.quit
End Sub
代码中的readState可参见上面解释说明,do```loop until;do until```loop可参见
百科,step可参见
百科,with```end with解释如下(
百度知道):
With 语句 在一个单一对象或一个用户定义类型上执行一系列的语句。 语法 With object [statements] End With With 语句的语法具有以下几个部分: 部分 描述 object 必要参数。一个对象或用户自定义类型的名称。 statements 可选参数。要执行在 object 上的一条或多条语句。 说明 With 语句可以对某个对象执行一系列的语句,而不用重复指出对象的名称。例如,要改变一个对象的多个属性,可以在 With 控制结构中加上属性的赋值语句,这时候只是引用对象一次而不是在每个属性赋值时都要引用它。下面的例子显示了如何使用With 语句来给同一个对象的几个属性赋值。 With MyLabel .Height = 2000 .Width = 2000 .Caption = "This is MyLabel" End With 注意 当程序一旦进入With 块,object 就不能改变。因此不能用一个 With 语句来设置多个不同的对象。 可以将一个With 块放在另一个之中,而产生嵌套的 With 语句。但是,由于外层 With 块成员会在内层的 With 块中被屏蔽住,所以必须在内层的 With 块中,使用完整的对象引用来指出在外层的 With 块中的对象成员。 重点 一般来说,建议您不要跳入或跳出With 块。如果在 With 块中的语句被执行,但是 With 或 End With 语句并没有执行,则一个包含对该对象引用的临时变量将保留在内存中,直到您退出该过程。。 ======================================================================= 说白了就是简化对象属性的写法,在with....end with间可以只写.属性=xx一些循环的语法可参见之前的博客 VBS学习日记(二)基础知识