使用JavaScript中的OLE Automation
3. 怎樣創(chuàng)建Automation對(duì)象的新實(shí)例
Jscript(微軟版本的JavaScript)是一個(gè)寬松類型的語(yǔ)言。換句話說(shuō),變量不是明顯定義為指定的數(shù)據(jù)類型。你不能聲明一個(gè)變量為指定的對(duì)象類型,所以早綁定不可能在JScript中。Jscript的ActiveXObject()構(gòu)造函數(shù)通常用于為對(duì)象創(chuàng)建一個(gè)遲綁定界面:
var wdApp; // 一個(gè)普通變量
wdApp = new ActiveXObject("Word.Application");
Jscript不需要明顯的變量聲明,所以我們可以使用以下的代碼:
var wdApp = new ActiveXObject("Word.Application");
ActiveXObject()函數(shù)的一般的語(yǔ)法如下:
var objVar = new ActiveXObject(class[, servername]);
objVar指定為一個(gè)持有實(shí)例化對(duì)象引用的變量。class使用library.object語(yǔ)法,它是指應(yīng)用程序的名字(比如Word或者Excel等等)或者包含對(duì)象的庫(kù),并且對(duì)象是要?jiǎng)?chuàng)建的對(duì)象類的類型。servername(這是一個(gè)可選的參數(shù))指定了包含對(duì)象的服務(wù)器的名字。
這個(gè)ActiveXObject()構(gòu)造函數(shù)創(chuàng)建了一個(gè)OLE Automation(ActiveX)對(duì)象的實(shí)例。一旦對(duì)象被創(chuàng)建了,你可以使用定義的對(duì)象變量來(lái)引用它。如果ActiveX對(duì)象的實(shí)例已經(jīng)運(yùn)行,ActiveXObject()在它創(chuàng)建了必需的類型的對(duì)象的時(shí)候可能開(kāi)始一個(gè)新的實(shí)例。下面的代碼段可以讓用戶直接打開(kāi)一個(gè)Word文檔:
var pause = 0;
var wdDialogFileOpen = 80;
var wdApp = new ActiveXObject("Word.Application");
var dialog = wdApp.Dialogs(wdDialogFileOpen);
var button = dialog.Show(pause); 使用JavaScript中的OLE Automation
3. 怎樣創(chuàng)建Automation對(duì)象的新實(shí)例
前面的代碼段引用了Word.Application對(duì)象,它的方法在后面的教程要介紹。這里要注意等級(jí)結(jié)構(gòu),即一個(gè)方法或者屬性是一個(gè)對(duì)象,它們又又自己的方法和屬性。
象Visual Basic 6,Jscript可以通過(guò)增加一個(gè)新的參數(shù)(servername)來(lái)一步增加ActiveXObject函數(shù)。你可以在注冊(cè)的ActinveX對(duì)象上指定服務(wù)器的名字。在遠(yuǎn)程服務(wù)器創(chuàng)建一個(gè)對(duì)象可以在Internet安全檢查程序關(guān)閉的時(shí)候完成。你可以通過(guò)傳遞計(jì)算機(jī)的名字給ActiveXObject()構(gòu)造函數(shù)的servername參數(shù)來(lái)在遠(yuǎn)程網(wǎng)絡(luò)計(jì)算機(jī)上創(chuàng)建一個(gè)對(duì)象。比如,如果一個(gè)網(wǎng)絡(luò)共享命名為"\\MYSERVER\D\Program Files",那那么servername的數(shù)值就為’MYSERVER”。另外,你可以使用DNS格式或者一個(gè)IP地址來(lái)指定位置。下面的函數(shù)返回運(yùn)行在遠(yuǎn)程網(wǎng)絡(luò)計(jì)算機(jī)(名為"MYSERVER")Word的實(shí)例的版本號(hào):
function getVersion() {
var wdApp = new ActiveXObject("Word.Application", "MYSERVER");
return wdApp.Version;
}
如果指定的遠(yuǎn)程服務(wù)器不存在或者沒(méi)有找到就會(huì)產(chǎn)生一個(gè)錯(cuò)誤。當(dāng)我們測(cè)試這個(gè)函數(shù)的時(shí)候,我們可以發(fā)現(xiàn)Jscript忽視了servername參數(shù)。所以我們?cè)赩BScript將這些函數(shù)放在一起,可以發(fā)現(xiàn)它并不工作:
Function GetVersion
Dim wdApp
Set wdApp = CreateObject("Word.Application", "MYSERVER")
GetVersion = wdApp.Version
End Function
|
溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!