gpt4 book ai didi

javascript - 如何将数据传递给 page.evaluate 函数?

转载 作者:行者123 更新时间:2023-12-03 03:41:22 28 4
gpt4 key购买 nike

考虑来自 node-phantom 的代码:

page.evaluate(function() {
return document.getElementById('foo').innerHTML;
}).then(function(html){
console.log(html);
});

该函数直接在html页面中执行,因此添加如下参数:

someExternalVariable = 'foo';
page.evaluate(function() {
return document.getElementById(someExternalVariable).innerHTML;
}).then(function(html){
console.log(html);
});

导致未定义的someExternalVariable,因为打开的页面不知道someExternalVariable的任何信息。那么如何传递外部数据来评估 phantomjs-node 中的函数?

最佳答案

如果变量是可序列化的,你可以这样做

someExternalVariable = 'foo';
page.evaluate(function(id) {
return document.getElementById(id).innerHTML;
}, someExternalVariable ).then(function(html){
console.log(html);
})

如果不是(假设你想传递一个带有闭包的函数),我怀疑是否有办法做到这一点。 Docs .

Note: The arguments and the return value to the evaluate function must be a simple primitive object. The rule of thumb: if it can be serialized via JSON, then it is fine.

关于javascript - 如何将数据传递给 page.evaluate 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45605848/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com