动态更改PhantomJS中的viewportSize
为了让PhantomJ以不同的视口宽度创建页面的屏幕截图,我想动态地调整它。但是,这不起作用:动态更改PhantomJS中的viewportSize,phantomjs,viewport,Phantomjs,Viewport,为了让PhantomJ以不同的视口宽度创建页面的屏幕截图,我想动态地调整它。但是,这不起作用: var system = require('system'); var page = require('webpage').create(); page.viewportSize = { width: 800, height: 600 }; page.open('http://example.com', function (status) { page.render('medium.pn
var system = require('system');
var page = require('webpage').create();
page.viewportSize = { width: 800, height: 600 };
page.open('http://example.com', function (status) {
page.render('medium.png');
page.viewportSize = { width: 630, height: 420 };
page.render('small.png');
phantom.exit();
});
使用phantomjs script.js
运行时,会生成两个相同的PNG文件medium.PNG
和small.PNG
,每个文件的宽度为800px。预期的行为是将medium.png
设置为这样,将small.png
设置为630px的宽度。如何做到这一点
附言:对于一个类似的问题,我会犯错误。对于这个问题,我还想避免一个非常糟糕的解决方法。我认为应该可以设置视口大小,然后像这样再次打开页面:
var system = require('system');
var page = require('webpage').create();
page.viewportSize = { width: 800, height: 600 };
page.open('http://example.com', function (status) {
page.render('medium.png');
page.viewportSize = { width: 630, height: 420 };
page.open('http://example.com', function (status) {
page.render('small.png');
phantom.exit();
});
});
如果第二部分在第一部分的回调中,或者用
setTimeout
将其包装,则似乎可以工作。谢谢我把它改成了你推荐的方式,我无法复制你的问题。我在装有PhantomJS 2.1.1的Windows上更改了大小。我在装有PhantomJS 1.9版的Ubuntu上。?。我将尝试升级。谢谢你的评论!