phantomjs page.evaluate不返回数组中的预期值

时间:2014-07-04 14:41:27

标签: javascript jquery node.js phantomjs

以下打印到屏幕{b:['test']}。打印的'a'数组中没有值。

为什么'a'在'b'时没有添加任何项目?当它打印b中每个项目的outerhtml时,我可以看到它们具有'href'属性。

phantom.create(function(ph) {
  return ph.createPage(function(page) {
    return page.open(url, function(status) {
      console.log("opened " + url + "? ", status);

      if (status === "fail") {
        ph.exit();
        return;
      }

      page.injectJs('jquery.min.js', function() {
        console.log("loaded jquery");

        setTimeout(function() {
          return page.evaluate(function() {

            var a = [],
              b = [];

            $("a").each(function() {
              a.push($(this).attr("href"));
              b.push($(this)[0].outerHTML);
            });

            return {
              a: a,
              b: b
            };

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

0 个答案:

没有答案