2012-08-14 67 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