開始:
你能讓javascript和vbscript實現從同一個表格裡傳出音樂。看看下面的指令碼:
<%@LANGUAGE="JavaScript"%> <SCRIPT LANGUAGE="JavaScript" RUNAT="Server"> function JSGreeting() { return "Greetings from a JavaScript Function"; } </sCRIPT> <SCRIPT LANGUAGE="VBScript" RUNAT="Server"> Function VBGreeting() VBGreeting="Greetings from a VBScript Function" End Function Function toDollars(x) toDollars=FormatCurrency(x) End Function </sCRIPT> <% var a = 2; var b = 2; var c = add(a,b) c += " (Two numbers are added by JavaScript, " c += "and then formatted into currency by VBScript.)" function add(x,y) { result = x + y; result = toDollars(result); return result; } Response.Write("<HTML>\r") Response.Write(JSGreeting() + "\r") Response.Write(VBGreeting() + "\r") Response.Write(c + " \r") Response.Write("</hTML>\r") %>
[Ctrl+A 全選 注:如需引入外部Js需重新整理才能執行]
RUNAT:
讓我們將它從頭到尾的分解開來。下面所列是一個簡單而獨立的javascript:
要不是那個不起眼的RUNAT="Server",它看起來就是一個你可能在用戶端看到的簡單的javascript。
RUNAT屬性告訴伺服器在伺服器端執行它,因此用戶端永遠都看不到它的。你也可以將屬性設定為RUNAT="client",這樣就可以跳過伺服器端,直接在用戶端執行了。
順便說一句, 不能放置在asp標籤內。
看看下面的vbscript:
Function VBGreeting()
VBGreeting="Greetings from a VBScript Function"
End Function
這個vbscript實現了和javascript同樣的功能。它並沒有什麼特別之處。
然而,下面的vbscript還是有一些特別之處的。
Function toDollars(x)
toDollars=FormatCurrency(x)
End Function
引用:
上面的函數回從javascript中獲得一個參數。然後他會給javascript返回一個最合適的值。讓我們來看看Function toDollars(x)是如何被引用的。
function add(x,y)
{
result = x + y;
result = toDollars(result);
return result;
}
函數add(x,y) 是一個javascript函數。從函數的中間可以看到
result = toDollars(result);
上面的一行實際上是vbscript對javascript的一個調用。
警告:
作為一個警告。當你建立帶有RUNAT屬性的指令碼的時候,你實際上在安排它的執行順序。我並不會深入的去講解這個問題,因為執行的順序是根據形勢而定的。
下面是我將要深入講解的:只對函數使用RUNAT屬性(還有那些在函數內調用的全域變數)。不要將最頂層的代碼放在它裡面,因為你不能保證頂層代碼會因為使用這個技巧而改變執行順序。
本節原文及範例地址:http://aspjavascript.com/lesson04.asp
原文作者:James Clark 翻譯:huahua 轉載請註明