gpt4 book ai didi

node.js - Node js + PhantomJs : send data to page. 评估

转载 作者:搜寻专家 更新时间:2023-10-31 23:25:24 27 4
gpt4 key购买 nike

如何将变量从服务器发送到 page.evaluate ?

var test = 'Lorem Ipsum';

phantom = require('phantom')
phantom.create(function(ph){
ph.createPage(function(page) {
page.open("http://www.google.com", function(status) {
page.evaluate(function(){
$('body').html(test);
});
page.render('google.pdf', function(){

console.log('Page Rendered');
ph.exit();
});
});
});
});

预先感谢您的帮助。

编辑1

现在看起来像

var message = function(){
return {message: 'Hello Word'};
};

phantom = require('phantom')
phantom.create(function(ph){
ph.createPage(function(page) {
page.open("http://www.google.com", function(status) {
page.evaluate(function(content){
$('body').html(content);
}, message);
page.render('google.pdf', function(){

console.log('Page Rendered');
ph.exit();
});
});
});
});

现在我没有任何错误,但我不知道如何处理这个对象以在 page.evaluate 中使用它

最佳答案

试试

page.evaluate(function (...) {...}, function (err, data){...}, arg1, arg2, ...);

例子:

var message = 'hello world';
page.evaluate(function(content){
$('body').html(content);
return 'any data'
}, function (err, anydata) {}, message);

在页面中添加jquery

page.includeJs('http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js', function(err) {
//jQuery Loaded.
//Wait for a bit if site have AJAX
setTimeout(function() {
return page.evaluate(function() {
// USE JQUERY HERE
//
//

return
}, function(err, result) {
console.log(result);
ph.exit();
});
}, 3000);
});

请参阅自述文件: https://github.com/alexscheelmeyer/node-phantom

关于node.js - Node js + PhantomJs : send data to page. 评估,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20493536/

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