當加菲貓沒說過
在我們的Windows系統裡提供了一個叫ScriptControl的com元件,我們可以用這個元件來調用JS等腳本語言的資源。
有些庫我們VFP沒有的話,JS有的話,我們就可以大量運用了哦。
1 用Eval()來實作表達式的計算
oJs=Createobject("ScriptControl")
oJs.Language="JavaScript"
?oJs.eval("100+5*3")
複制
2 調用JS内置函數,示例漢字編碼
oJs=Createobject("ScriptControl")
oJs.Language="JavaScript"
cWords="漢字"
?ojs.Eval('escape("'+cWords+'")')
複制
傳參用拼接的比較累就是了
03
3 調用自定義函數 注意JS的小大寫
TEXT TO lcJs TEXTMERGE PRETEXT 1+2 NOSHOW
function xx1 (x,y){
return x+y;
}
ENDTEXT
oJs=Createobject("ScriptControl")
oJs.Language="JavaScript"
oJs.AddCode(lcJs)
?oJs.Eval("xx1("+'1,2'+")")
複制
也可以用run來調用,更爽一點
TEXT TO lcJs TEXTMERGE PRETEXT 1+2 NOSHOW
function xx1 (x,y){
return x+y;
}
ENDTEXT
oJs=Createobject("ScriptControl")
oJs.Language="JavaScript"
oJs.AddCode(lcJs)
?oJs.run("xx1",1,2)
複制
隻要是添加到Script 控件的函數是完整的,Run 方法就可以運作。
那不完整的片段,我們怎麼辦呢?
下面就可以用 ExecuteStatement 方法将值 100 賦給變量 x。下面的兩行用 eval 方法來測試語句 x = 100 和 x = 100/2。第二行傳回 .T.;而第三行則傳回 .F.。
oJs=Createobject("ScriptControl")
oJs.Language="JavaScript"
oJs.ExecuteStatement("x = 0/100")
?oJs.Eval("x == 100") && 傳回 .T.
?oJs.Eval("x == 100/2") && 傳回 .F.
複制