Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Phantom JS-clipRect-Javascript帮助_Javascript_Phantomjs - Fatal编程技术网

Phantom JS-clipRect-Javascript帮助

Phantom JS-clipRect-Javascript帮助,javascript,phantomjs,Javascript,Phantomjs,我用phantom js截屏一页 它有一个叫做clipRect的特性 ) 有人能告诉我如何修改下面的代码到我们的clipRect,这样我只得到一个部分截图,而不是整个东西吗 if (phantom.state.length === 0) { if (phantom.args.length !== 2) { console.log('Usage: rasterize.js URL filename'); phantom.exit(); } else { var addre

我用phantom js截屏一页

它有一个叫做clipRect的特性

)

有人能告诉我如何修改下面的代码到我们的clipRect,这样我只得到一个部分截图,而不是整个东西吗

if (phantom.state.length === 0) {
if (phantom.args.length !== 2) {
    console.log('Usage: rasterize.js URL filename');
    phantom.exit();
} else {
    var address = phantom.args[0];
    phantom.state = 'rasterize';
    phantom.viewportSize = { width: 600, height: 600 };
    phantom.open(address);
}
} else {
    var output = phantom.args[1];
    phantom.sleep(200);
    phantom.render(output);
    phantom.exit();
}    
从:

clipRect(对象)

此属性定义调用render()时要光栅化的网页矩形区域。如果未设置剪切矩形,render()将处理整个网页

示例:
phantom.clipRect={top:14,left:3,width:400,height:300}

因此,在调用
render
之前,请尝试设置
clipRect

var output = phantom.args[1];
phantom.sleep(200);
phantom.clipRect = { top: 14, left: 3, width: 400, height: 300 }
phantom.render(output);
phantom.exit();
您必须计算左上角(
顶部
左侧
)的位置,以及希望剪切矩形的大小(
宽度
高度


您可能可以在调用
render()
之前的任何时候设置
clipRect
,但从这开始,看看会发生什么。

发生的事情是,我正在使用brew,它正在安装V1.0.0,而clipRect和几乎所有其他功能都不受支持,因为V1.0.0是最旧的版本

如果您按照以下说明操作:

然后右键单击已编译的文件并单击显示/查看内容(在mac上),然后将可执行文件bin/phantomjs.app/contents/MacOS/phantomjs复制到路径中的某个目录


请随意在此处发布我正在监视此内容,如果需要,我可以提供帮助。

如果您试图获取特定元素的屏幕截图,您可以从
getBoundingClientRect
获取
clipRect
的必要信息,如下所示:


brew安装了错误版本的phantomjs,并且所安装的版本不支持clipRect。关闭。谢谢,使用bundle安装是在安装V1.0.0,而clipRect和几乎所有其他功能都不受支持,因为V1.0.0是最旧的版本。我使用的是Brew安装,而不是bundleinstall@joel:所以你有版本问题?版本问题成了噩梦。
page.clipRect = page.evaluate(function() {
    return document.getElementById(THE_ELEMENT_YOU_WANT).getBoundingClientRect(); 
});