Splash 3.2 中的 jsfunc() 方法是直接可以調用JavaScript定義的方法,但是所調用的方法需要用雙中括號包圍,這相當于實現(xiàn)了JvaScript方法到Lua腳本的轉換.示例如下:
function main(splash, args)
local get_div_count = splash:jsfunc([[
function () {
var body = document.body;
var divs = body.getElementsByTagName('div');
return divs.length;
}
]])
splash:go('https://www.baidu.com')
return ('There are %s DIVs'):format(
get_div_count())
end
運行結果如下:
Splash Response: "There are 22 DIVs"
以上為參考<<Python3 網(wǎng)絡開發(fā)實戰(zhàn)>>,崔慶才 P270.
關于JavaScript到Lua腳本的更多轉換細節(jié),如下:
function main(splash, args)
local vec_len = splash:jsfunc([[
function(x, y) {
return Math.sqrt(x*x + y*y)
}
]])
return {res=vec_len(5, 4)}
end
運行結果如下:
res: 6.4031242374328485
這是用JavaScript函數(shù)來傳參的一個示例
更多細節(jié)可以參考:
https://splash.readthedocs.io/en/stable/scripting-ref.html#splash-jsfunc