让PhantomJs在生成pdf之前等待Ajax请求

让PhantomJs在生成pdf之前等待Ajax请求,phantomjs,Phantomjs,使用phantomjs中的示例非常有效 但是,如果url需要发出Ajax请求以加载其数据,会发生什么情况?我是否可以触发自定义事件,以便只在那时生成pdf? (我不想猜测请求将花费多少时间并设置超时)此问题的常见解决方案是等待AJAX请求完成后页面上出现的元素 包括来自的waitFor函数,并等待作为参数传递给waitFor的第一个函数返回true,然后它将运行作为第二个参数传递的函数 page.open("https://example.com/ajaxified/", function (

使用phantomjs中的示例非常有效

但是,如果url需要发出Ajax请求以加载其数据,会发生什么情况?我是否可以触发自定义事件,以便只在那时生成pdf?


(我不想猜测请求将花费多少时间并设置超时)

此问题的常见解决方案是等待AJAX请求完成后页面上出现的元素

包括来自的
waitFor
函数,并等待作为参数传递给
waitFor
的第一个函数返回true,然后它将运行作为第二个参数传递的函数

page.open("https://example.com/ajaxified/", function (status) {
    waitFor(function() {
        return page.evaluate(function() {
            return document.querySelectorAll(".report").length > 0;
        });
    }, function() {
       page.render("report.pdf");
       phantom.exit();
    });

});
可能重复的