1. 程式人生 > >InternetExplorer.Application物件的Documen屬性及簡單應用

InternetExplorer.Application物件的Documen屬性及簡單應用

InternetExplorer.Application物件的Documen屬性(轉帖) 

document 文擋物件 - JavaScript指令碼語言描述 

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

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

注:頁面上元素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學習日記(二)基礎知識

相關推薦

InternetExplorer.Application物件Documen屬性簡單應用

InternetExplorer.Application物件的Documen屬性(轉帖)  document 文擋物件 - JavaScript指令碼語言描述  --------------------------------------------------------

SpringMVC配置簡單應用

新的 bat pan start rop jstl cast 版本 ans 1.在web.xml中配置前端控制器 <servlet>   <servlet-name>springmvc</servlet-name>   <servl

達內科技NTD1712華為vlan定義,簡單應用

system blog interface config ethernet 地址 col tag efault Vlan的定義:是物理設備上連接的不受物理限制的用戶的一個邏輯組。 Vlan的作用:交換機可以分割沖突域,但不能分割廣播域,為了解決這個問題,

Tesseract 在 windows 下的安裝簡單應用

打開 版本信息 文本 否則 選擇 分享 16px alt 運行 Tesseract 是一個開源的 OCR 引擎,可以識別多種格式的圖像文件並將其轉換成文本,最初由 HP 公司開發,後來由 Google 維護。下載地址:https://digi.bib.uni-mannhei

ETCD叢集安裝配置簡單應用

環境配置 CentOS Linux release 7.3.1611 (Core)  etcd-v3.2.6 192.168.108.128 節點1 192.168.108.129 節點2 192.168.108.130 節點3 ETCD

Eureka概念簡單應用

1、為什麼使用Eureka?  在Spring Cloud中我們經常使用Eureka,是因為SpringCloud對Eureka支援力度非常大 ,Eureka的社群活躍多較高,版本更新的速度快。 Eureka簡介: Eureka是Netflix開發的服務發現元件,

使用python操作redis簡單應用

redis 連線例項是執行緒安全的,可以直接將redis連線例項設定為一個全域性變數,直接使用. pip install redis import redis >> r = redis.Redis(host='localhost',port=6379,password='', db=0

串:串的基本定義簡單應用魔王語言

串 串,於我的理解就是字串 一般認為有三種儲存方式:定長順序串,堆串,塊鏈串(個人認為比較雞肋)。定長順序串類似於普通字串,同陣列的大小一樣最長長度固定。堆串儲存在堆中,空間大小可重新分配。塊鏈串類似於連結串列,是極端節省空間的堆串。 定長順序串與堆串應用較多,定長順序串的一些操作存

Weka安裝簡單應用

因為前段時間上課有接觸WEKA這個軟體 ,寫了一個實驗報告,特此把它貼出來,希望能對大家有所幫助~ 一、Weka介紹 1、Weka簡介 Weka是懷卡託智慧分析環境(Waikato Environment for Knowledge Analysis)的英文字首縮寫,在

vs 2017新增Report Viewer控制元件簡單應用

安裝完vs2017之後我們進行新增Report Viewer控制元件: 1. 點選Tools -> Extensions and Updates... 2. 在新視窗搜尋欄中輸入rdlc後

Python學習筆記----Numpy基礎(陣列物件屬性陣列建立)

Numpy是Python的一種開源的數值計算擴充套件,這種工具可以用來儲存和處理大型矩陣,比Python自身的巢狀列表結構高效的多。 Numpy的主要物件是同構多維陣列(ndarray),它是一個元素表,所有元素都是相同的資料型別,由正整數元組索引。 下面列舉一些nd

【Spring訊息】RabbitMq安裝簡單應用(二)

前言: 埋頭苦寫。先把官方文件翻譯過來。整個流程跑一遍。上一篇文章,【Spring訊息】RabbitMq安裝及簡單應用(一),把點對點發送訊息寫完了。之前雖然也可以一個生產者多個消費者,但是一條訊息只能被一個消費者處理,所以是點對點。這篇文章來講講釋出訂閱,一對多。一條訊息

深度學習介紹簡單應用

引言   深度學習背後的主要原理是從大腦中汲取靈感。,這種觀點產生了“神經網路”術語,大腦包含數十億個神經元,它們之間有數萬個連線。 在許多情況下,深度學習演算法類似於大腦,因為大腦和深度學習模型都涉及大量的計算單元(神經元),這些單元在未啟用時並不是活躍的,它們彼此互動時會變得智慧化。 神經元   神經網路

【舊文章搬運】ZwQuerySystemInformation枚舉內核模塊簡單應用

接下來 smo and obj 基址 add dwr 調用 mit 原文發表於百度空間,2008-10-24========================================================================== 簡單說,即調用

jquery datatables各引數詳細說明簡單應用

v1.9.0下載後,將media資料夾裡面的css,images,js資料夾拷貝到你的網站即可。接下來引入以下內容: <style type="text/css" title="currentStyle"> @import "./style/datatable/css/de

js刪除物件屬性封裝方法

javascript中可以通過delete刪除物件的屬性: 使用方法如下:var obj={}; obj.pro="del"; delete obj.pro; //或者 delete obj[pro] //該操作具有返回值 刪除成功為true失敗為false為了便於使用封裝成

POI入門簡單應用

        由於工作的需要,學習了一下POI,  Apache POI是Apache軟體基金會的開放原始碼函式庫,POI提供API給Java程式對Microsoft Office格式檔案讀和寫的功能。         那麼我們怎麼使用POI呢?POI的使用其實非常簡單,

人工智慧學習筆記-Theano介紹簡單應用

1 Theano介紹和安裝 1.1 什麼是Theano Theano是一個較為老牌和穩定的機器學習python庫之一。Theano基於Python擅長處理多維陣列(緊密集成了Numpy),屬於比較底層的框架,theano起初也是為了深

GRUB原始碼概述簡單應用

  前言 第七章之後的是針對一些小應用的修改。 [編輯] 概述 以下是我畢業論文的一部分:)對grub原始碼進行了一些分析,其實也沒有什麼新的東西,基本上是對斑竹的一個總結,然後細化了一些內容。可能有些不對的地方還請各位指正。 [編輯] GRUB整體分析 總體上我們

window 物件屬性方法

window物件集合frames[]:返回視窗中所有命名的框架。該集合是 Window 物件的陣列,每個 Window 物件在視窗中含有一個框架或 <iframe>。屬性 frames.length 存放陣列 frames[] 中含有的元素個數。注意,frames