Splash 3.2 中的 jsfunc() 方法是直接可以调用JavaScript定义的方法,但是所调用的方法需要用双中括号包围,这相当于实现了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 网络开发实战>>,崔庆才 P270.
关于JavaScript到Lua脚本的更多转换细节,如下:
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函数来传参的一个示例
更多细节可以参考:
https://splash.readthedocs.io/en/stable/scripting-ref.html#splash-jsfunc
网友评论