国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

使用VBScript和JScript編寫WEB應用程序(三)

2024-07-21 02:15:37
字體:
來源:轉載
供稿:網友
使用vbscript和jscript編寫web應用程序(三)

3、區分大小寫以及命名習慣
jscript是嚴格區別大小寫的:在每個jscript的關鍵字,每個jscript命名空間的所有部分中,
你可以把大寫和小寫字母恰當的結合起來使用。這其中包括了你使用的對象模型中所有的關鍵
字。例如,當你使用asp response對象時,必須正確地使用大小寫字母(如response.write),
否則jscript會堅決不予承認。同樣,如果你為dhtml onclick事件編寫一個處理程序,如果用
在visual basic中經常發生的隨便使用大小寫的形式jscript可能就不會承認。

vbscript是不區分大寫和小寫字母的。在某種程度上,這種不計較大小寫的疏忽甚至在你用
vbscript對jscript編寫的單元進行訪問時都沒什么問題。下面例子中給出了兩個腳本。第一
個是用jscript編寫的,其中還包括了一個全局變量(ctr)和一個函數(doubleme)。第二個
腳本是用vbscript編寫的,它是一個按鈕處理程序,它能夠調用jscript函數,并且報告全局
變量的值。

<script language=javascript>
var ctr;
function doubleme(anumber){
    if(parseint(ctr)){
        ctr = ctr + 1;
    }
    else{
        ctr = 1;
    }
return anumber * 2;
}
</script>

<script language="vbscript">
function btn1_onclick()
    numbertodouble = 12
    msgbox "the doubled number = " & doubleme(numbertodouble)
    msgbox "you have doubled the number " & ctr & " times."
end function
</script>

在vbscript腳本中,很明顯,我在提到doubleme 函數和ctr變量時,沒有正確使用字母的大小
寫,但是程序依然運行良好。 這是一個好消息。而壞消息就是,在下面這些情況下你一定要注
意字母的大小寫:如果網頁中的javascript腳本所包含的單元只能夠通過字母的大寫和小寫來
區分,例如,一個叫做timer()的函數和一個叫做timer的全局變量等等。很不幸,盡管這種編
碼方式不怎么好,但是有時候在你的網頁中還是可能會遇到原來就存在的編碼。

在一個函數調用中把jscript單元的名字作為一個字符串參數來使用

如果jscript包括的單元僅僅能夠用字母的大小寫來區分,那么vbscript就會把它們看成一樣的
(也就是說,不區分大寫和小寫)。vbscript只能看看不管大小寫的區別,它們是不是一樣,
因此它識別出的只有一個jscript單元。換一句話說,如果vbscript首先找到的是叫做timer()
的函數,那么它就無法找到叫做timer的全局變量了,反之也是一樣。即便你在vbscript編碼中
十分注意的把它們做了區別結果也是一樣。因為vbscript在處理這些名字的時候認為它們只有一
種寫法。不幸的是,這里沒有其它的解決方法,除非在jscript的代碼中不利用這些大小寫之間
的微小差別來區分不同的函數名稱。

除了在某些特殊的情況下,把單元名作為參數使用這種問題并不常見。特殊情況之一是在visual
interdev 6.0中的腳本對象模型中。下面我會把它作為一個例子來使用,你可以把它看作是相同
情況下的處理準則。

visual interdev 6.0的腳本對象模型都是用jscript來編寫的。你也可以用vbscript來編寫自己
的編碼,它能夠與用vbscript區分大小寫方式編寫的腳本對象模型一起使用。有時候,你不能夠
直接調用某一方法,除非你把這個方法的名稱傳遞到一個jscript函數中,而由函數來調用這個
方法。

一個典型的例子就是警告方法,你可以用它把一個方法綁定到一個特殊的事件上。在下面這個例
子中,一個按鈕的onmouseover事件被綁定到changecaption()事件處理程序上。

<script language="vbscript">
function setadvisemethods()
    btn1.advise("onmouseover", "changecaption()")
end function
</script>

因為你把這些名字作為字符串傳送到一個jscript函數中,所以你必須使用正確的大小寫表示。
jscript會自動用它的區分大小寫的規則來檢查這些名字,如果大小寫不正確,就會找不到它們。

4、從vbscript 往jscript中傳送數組
有時候一個vbscript程序會傳送一個數組作為它的一個參數,或者作為它的返回值。你可以從jscript
中調用這個程序,不過必須把vbscript數組轉換成為一個可用的jscript數組。你只要在jscript函數中
建立一個vbarray對象并且用toarray把它轉換成為一個jscript數組就可以了。

注意:jscript不支持多維數組,如果原來的vbscript數組是多維的,經過toarray的轉換后它會成為一
個一維的jscript數組。 在下面的例子中有一個vbscript腳本,它建立了一個數組,還有一個jscript
腳本,它將說明如何才能獲得并使用這個數組:

<script language="vbscript">
function makearrayvb()
    ' 建立一個 vbscript 數組
    dim anarray(1,1)
    anarray(0,0) = "0,0"
    anarray(0,1) = "0,1"
    anarray(1,0) = "1,0"
    anarray(1,1) = "1,1"
    makearrayvb = anarray
end function

<script language="javascript">
// 在 jscript 腳本中訪問 vbscript 數組
function getvbarray(){
    var arrayobj;
    var jsarray;
    arrayobj = makearrayvb();
    jsarray = vbarray(arrayobj).toarray();
    alert("vbscript array length = " + jsarray.length);
    
    // 顯示數組的內容
    for(i=1;i<=jsarray.length;i++){
       alert(jsarray[i-1]);
    }
}
</script>
不過,在目前的vbscript(4.0)中,反過來是無法做到的。也就是說你不能把一個 javascript 數組轉換成
為vbscript數組。如果你非要在vbscript程序中使用javascript數組,你可以用下面的做法:
把jscript 數組轉換成一種不同的結構,如轉換成一個由分隔符限制的字符串等,這樣vbscript 就能夠使
用了。例如,你可以用 tostring 函數把一個數組轉換成一個用逗號分隔的,無限制的字符串。這樣,在
vbscript 中你就能夠用 split 函數把它分成不同的單元。很明顯這種方法在很多時候并不管用,不過有時
又的確有效。

以上羅里羅唆的寫了一大堆,希望能對網友們有幫助,也希望就某些問題展開討論。
最后,祝網友們 happy scripting!!

我心飛揚敬上

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宽城| 浏阳市| 绥阳县| 瑞金市| 新乡市| 阿巴嘎旗| 万宁市| 宁海县| 原阳县| 南城县| 宣恩县| 茌平县| 福海县| 怀仁县| 时尚| 定日县| 伊川县| 建水县| 沂南县| 蒙自县| 文登市| 黄浦区| 中江县| 博湖县| 务川| 威信县| 中宁县| 车致| 凯里市| 兴义市| 富源县| 南平市| 康保县| 建阳市| 佛教| 襄樊市| 双牌县| 丰原市| 镇赉县| 蒙城县| 灌南县|