2012-08-14 62 views
2

我知道这是可以任意裁切PhantomJS截图,使用page.clipRect()作物截图元素PhantomJS

  page.clipRect = { 
       top: element_top, 
       left: element_left, 
       width: element_width, 
       height: element_height 
      }; 

所以,我试图抓住使用jQuery特定元素的定位和宽度/高度。但是,我的代码如下(基于PhantomJS rasterize.js example的最后一部分)不起作用;它只是保持默认值。

我在想我必须在变量范围方面做错了什么。我怎样才能使这个工作?你里面page.evaluate运行

page.open(address, function (status) { 
    if (status !== 'success') { 
     console.log('Unable to load the address!'); 
    } else { 

     var element_top = 0; 
     var element_left = 0;   
     var element_width = 200; 
     var element_height = 200; 

     page.evaluate(function() { 
       var $element = $('h1'); 
       var offset = $element.offset(); 
       element_top = offset.top; 
       element_left = offset.left; 
       element_width = $element.width(); 
       element_height = $element.height();  
     }); 

     window.setTimeout(function() { 
      page.clipRect = { 
       top: element_top, 
       left: element_left, 
       width: element_width, 
       height: element_height 
      }; 

      page.render(output); 
      phantom.exit(); 
     }, 200); 
    } 
}); 

回答

1

任何不能从外面的世界,在执行沙盒,并与页面的上下文限制。为了使其可用,请将其作为返回值,然后您可以访问它。

看看PhantomJS包括pizza.js比萨饼店的名单返回给调用者。

+0

是'pizza.js'仍然可用我无法在Github上找到它。 – Sgnl 2016-07-23 10:07:02