Обрезать скриншот до элемента в PhantomJS
Я знаю, что можно произвольно обрезать снимок экрана в PhantomJS, используяpage.clipRect()
:
page.clipRect = {
top: element_top,
left: element_left,
width: element_width,
height: element_height
};
Итак, я пытаюсь захватить расположение и ширину / высоту конкретного элемента с помощью jQuery. Тем не менее, мой код ниже (на основе последнего раздела PhantomJSПример rasterize.js) не работает; он просто сохраняет значения по умолчанию.
Я думаю, что, должно быть, я сделал что-то не так в отношении переменной области. Как я могу заставить это работать?
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);
}
});