天天看點

VFP中超爽運作JS代碼

當加菲貓沒說過

在我們的Windows系統裡提供了一個叫ScriptControl的com元件,我們可以用這個元件來調用JS等腳本語言的資源。

有些庫我們VFP沒有的話,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.           

複制