InternetExplorer.Application对象的Documen属性及简单应用

来源:互联网 发布:php 抽奖系统 设计 编辑:程序博客网 时间:2024/04/29 04:50
InternetExplorer.Application对象的Documen属性(转帖) 

document 文挡对象 - JavaScript脚本语言描述 

---------------------------------------------------------------------


另附上微软MSDN上的资料地址


--------------------------------------------------------------------- 


注:页面上元素name属性和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 

UnhookMainWindow方法用于释放由HookMainWindow方法挂在主窗体的程序。

-------------------------------------------------------------------------------------------------------------------------

InternetExplorer.Application的两个简单应用

应用一:自动登录163邮箱

MailID = "******"      '账号PassWd = "*****"  '密码Set ie = CreateObject("InternetExplorer.Application") ie.visible = Trueie.navigate "http://mail.163.com/"'While```Wend循环,当条件成立时循环While ie.busy Or ie.readystate <> 4Wend '等待IE加载完成'账号的对比好像还是不完善,想用echo进行显示,但是报错(不同账号,同一密码时,如果上一次登陆后没有点击退出)if ie.document.getElementById("idInput").value = MailID Then Else  '输入账号,如果账号里面有默认账号则不输入    ie.document.getElementById("idInput").value = ""    ie.document.getElementById("idInput").value = MailIDEnd 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.availWidthavH= createobject("htmlfile").parentWindow.screen.availHeight'下边这个internetExplorer.application对象是IE对象,功能强大set roIe= Wscript.createobject("internetExplorer.application","IE_")roIe.navigate("http://minisite.qq.com/gd/index.shtml")   '''网吧应用时最好用内网的连接地址,要不可能很慢!dowscript.sleep 50loop 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 : Loopend With'下面的代码是让新IE窗口冒泡显示,自动关闭CreateObject("Wscript.Shell").Appactivate roIe.Document.Title & " - " '激活一个应用程序窗口,Title为标题For i = avH To avH-258 Step - 1       roIe.top= i       wscript.sleep 10 ''调节冒泡速度,可调整这个Nextwscript.sleep 20000   ''冒泡停留时间,可调整这个For i = avH-258 To avH   Step +1       roIe.top= i       wscript.sleep 10NextroIe.quitset roIe = Nothing '断开与对象的链接,释放内存,在大型工程中非常重要的一环,好习惯Sub IE_OnQuit() '这个子程序应该没有被调用       Wscript.quitEnd Sub
代码中的readState可参见上面解释说明,do```loop until;do until```loop可参见百科,step可参见百科,with```end with解释如下(百度知道):

With 语句在一个单一对象或一个用户定义类型上执行一系列的语句。语法With object[statements]End WithWith 语句的语法具有以下几个部分:部分   描述   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学习日记(二)基础知识

0 0
原创粉丝点击