Javascript 如何在page.evaluate内执行page.render?
我确实希望呈现我的页面并在evaluate函数中退出PhantomJS,因为我希望在触发特定事件时触发它 我试过这样的方法:Javascript 如何在page.evaluate内执行page.render?,javascript,phantomjs,Javascript,Phantomjs,我确实希望呈现我的页面并在evaluate函数中退出PhantomJS,因为我希望在触发特定事件时触发它 我试过这样的方法: page.evaluate(page, function (page, phantom) { //do some stuff on my page //i want to execute this in an eventhandler of my page though thats not the problem page.render('im
page.evaluate(page, function (page, phantom) {
//do some stuff on my page
//i want to execute this in an eventhandler of my page though thats not the problem
page.render('imgName.png');
page.render('pdfName.pdf');
phantom.exit();
}, page, phantom);
这在我的示例中不起作用,因为page.render
似乎未定义。可能有一个用于参数的序列化程序,它没有序列化obj的函数
这可能吗?有人知道我的问题的解决方案吗
我知道我可以在求值函数中设置一个while循环,防止其终止,然后在外部执行此页面渲染。不过我不喜欢这样。page.evaluate()
是沙盒。传入的函数在页面上下文中求值,所有参数都需要可序列化才能成功传入。您不能将页面
或幻影
传递到页面上下文中。委员会说:
注意:参数和evaluate
函数的返回值必须是一个简单的原语对象。经验法则:如果可以通过JSON对其进行序列化,那么就可以了
闭包、函数、DOM节点等将无法工作强>
这是为了:
问得好,回答得好。谢谢
page.onCallback = function(data){
if (data.exit) {
page.render('imgName.png');
page.render('pdfName.pdf');
phantom.exit();
}
};
page.evaluate(page, function () {
//do some stuff on my page
//i want to execute this in an eventhandler of my page though thats not the problem
window.callPhantom({ exit: true });
});