1:vbscript與javascipt傳變量(客戶端)
<HTML>
<HEAD>
<METAname=VI60_defaultClientScriptcontent=Javascript>
<SCRIPTLANGUAGE=vbscript>
<!--
dimstrTemp'首先,我們?cè)谶@里用vbscript定義一個(gè)變量
strTemp=10'緊接著,在這里給其負(fù)值。
-->
</SCRIPT>
<METANAME="GENERATOR"Content="MicrosoftVisualStudio6.0">
<SCRIPTID=clientEventHandlersJSLANGUAGE=javascript>
<!--
functiondocument_onclick(){
window.alert(strTemp);/**在這里,我們不經(jīng)過(guò)定義就可以直接用剛才vbscript里的遍量了。**/
}
//-->
</SCRIPT>
<SCRIPTLANGUAGE=javascriptFOR=documentEVENT=onclick>
<!--
document_onclick()/**此時(shí),你可以通過(guò)點(diǎn)擊網(wǎng)頁(yè)就可以看到vbscript中的變量已經(jīng)傳過(guò)來(lái)了。**/
//-->
</SCRIPT>
</HEAD>
<BODY>
說(shuō)明:其實(shí),如果你在vbscript中定義的變量。如果不是在函數(shù)里或是過(guò)程中的,他就都是全局變量。這個(gè)全局也就是從此刻到網(wǎng)頁(yè)執(zhí)行完畢。所以,在javascript中就可以拿來(lái)直接用了。但這里可要注意順序。腳本執(zhí)行過(guò)程是逐行解釋執(zhí)行的,如果你把vbscirpt中定義變量的部分放在javascript之后,可能就得不到正確結(jié)果了。道理就很清楚了。
2:javascript與vbscript傳變量(客戶端)
其實(shí),這個(gè)就不用講了,也可以的。但還是給個(gè)簡(jiǎn)單的例子吧。自己看看就明白了。
HTML>
<HEAD>
<METAname=VI60_defaultClientScriptcontent=JavaScript>
<scriptlanguage=javascript>
varstrTemp=10;
</script>
<scriptlanguage=vbscript>
msgbox(strTemp)
</script>
</HEAD>
<BODY>
3:服務(wù)器端與客戶端傳變量。
首先,我要說(shuō)的是,服務(wù)器端與客戶端腳本是可以傳的。傳什么先不要管。但是,服務(wù)器端與客戶端傳變量與上面講的不太一樣。或者不叫傳變量。我們還是結(jié)合例子吧。
<@Language=VBScript>
<
dimstrIp
strIp=Request.ServerVariables("remote_addr")
Response.Write"你的IP是:"&strIp
>
<html>
<body>
<SCRIPTLANGUAGE=vbscript>
<!--
msgbox(strIp)'請(qǐng)注意:這里是錯(cuò)的!
-->
</SCRIPT>
</body>
執(zhí)行完上面的句子,可能不會(huì)報(bào)錯(cuò)。但答案是錯(cuò)的。原因就是我說(shuō)的,這里面是不可能吧變量傳過(guò)來(lái)的。如果我們把流程搞清楚就不會(huì)犯這樣的錯(cuò)誤了。
首先,服務(wù)器端先解釋<>直接的代碼。如果有,就把他解釋執(zhí)行完畢,得到值后直接傳化為html的形式扔給客戶端。至于客戶端腳本,服務(wù)器端會(huì)動(dòng)也不動(dòng)就扔過(guò)來(lái)。所以我們看上面的例子??蛻舳说哪_本不被服務(wù)器端解釋。而服務(wù)器端的腳本已經(jīng)轉(zhuǎn)化為固定的值了,所以,
strIp里什么也沒(méi)有。故得不到你想要的答案。
那如何才能將ip址傳過(guò)來(lái)呢。這個(gè)就要稍微動(dòng)一下腦子,其實(shí)不用動(dòng)。呵呵。直接把msgbox(strIp)改成這樣。
msgbox("<=strIp>")就可以了。注意,要加上""號(hào)的,因?yàn)檫@時(shí),strIp已經(jīng)被解釋執(zhí)行為字符串了。
看到這里,相信大家都明白了,服務(wù)器端與客戶端嚴(yán)格上,是不可能傳遞變量的。但可以變通的傳值。(叫不叫傳值,不用管他,反正已經(jīng)得到正確答案了。呵呵)至于可不可以與客戶端的javascript傳值。我不說(shuō)你也明白了。當(dāng)然可以。
二:說(shuō)在最后的話,腳本語(yǔ)言中vbscript與javascript功能上不分上下。說(shuō)不上誰(shuí)好誰(shuí)差,可能vbscript中錯(cuò)誤處理好一些。javascript中字符串處理好一些,但隨著vbscript中正則表達(dá)式的引入,javascript中錯(cuò)誤處理不斷增強(qiáng)。所以,用那一種我認(rèn)為都可以了。關(guān)鍵是看你的習(xí)慣與愛(ài)好,說(shuō)這些的原因如果你用一種就可以完成,就最好不要用另一種。因?yàn)檫@樣從速度和效率來(lái)說(shuō)都是最佳的。因?yàn)闉g覽器不用同時(shí)調(diào)用兩種解釋引擎。速度當(dāng)然就快了。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注