您的位置:首页 > 移动开发

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

2014-07-21 11:15 489 查看
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 = 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学习日记(二)基础知识
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: