2009年4月11日 星期六

microsoft vbscript與標準javascript的某些不同

microsoft發展的vbscript與標準的javascript有一些不同之處先說用vbscript來操作DOM物件在標準的javascript中要取得一個DOM物件 可以用getElementById、getElementsByName、getElementsByTagName這三個document物件的method不過在vbscript中要取得一個DOM物件就不需要那麼麻煩了只要一個DOM物件有設定id屬性或是name屬性 直接就可以操作他 如以下範例
< html >
< head >
< script language="VBScript">
sub myfunc()
myinput.value="kerker"
end sub
< /script >
< /head >
< body >
< input type="text" name="myinput" >
< input type="button" onclick="myfunc" value="test" >
< /body >
< /html >
在一個網頁裡的DOM物件可以有相同的name屬性值想操作這些物件 標準的作法是用document.getElementByName()來返回一個array去操作但在vbscript中 那個name屬性值就已經是一個array可以讓你操作物件 如下範例
< html >
< head >
< script language="VBScript" >
sub myfunc()
myinput(0).value="kerker"
myinput(1).value="kerker"
end sub
< /script >
< /head >
< body >
< input type="text" name="myinput" >
< input type="text" name="myinput" >
< input type="button" onclick="myfunc" >
< /bdoy >
< /html >
雖然vbscript這麼方便 但是也可以用getElementById來返回DOM物件不過這個method不只會搜尋DOM物件的id屬性 也會搜尋name屬性 若是有同樣name屬性值的DOM物件它只會返回第一個搜尋到DOM物件這在firefox是不會發生的 也許是IE不夠支援標準所致

其他vbscript較與眾不同的地方是 呼叫sub程序時不可以加括號 除非使用call去呼叫sub程序而呼叫function時括號則可加可不加 但是如果要使用function回傳值時則一定要加括號也因為sub不用加括號的關係 所以可以有onclick="myfunc"這種寫法標準的javascript是不行這樣寫的 一定要onclick="myfunc()"才行

沒有留言:

張貼留言