我当前正在运行express js,并且我有一个打开phamton js的过程,然后对页面进行了截屏。我需要能够设置一个将从phamtom js中读取的变量。这是完整的挑战。
这是我的服务器js代码的一部分:
var express = require('express');
var app = express();
app.use( bodyParser.urlencoded() );
// your express configuration here
var httpServer = http.createServer(app);
// For http
httpServer.listen(8080);
app.post('/', function (req, res) {
console.log(req.body);
var firstLine = req.body.firstLine;
var secondLine = req.body.secondLine;
var previewID = req.body.previewId;
var productPlate = req.body.prodName;
res.header('Access-Control-Allow-Origin', 'https://example.com');
res.header('Access-Control-Allow-Methods', 'GET, POST, PUT');
res.header('Access-Control-Allow-Headers', 'X-Requested-With, Content-Type');
takeWebshot(firstLine, secondLine, previewID, productPlate)
res.end()
});
takeWebshot()
是运行节点网络快照的功能。在node-webshot文档中,它指出我可以传递幻影js回调并将其序列化。因此,代码如下:
function takeWebshot(fLine, sLine, pID, prodPlate) {
var options = {
onLoadFinished: {
fn: function() {
document.getElementById("user_input").value=this.fLineSnapshot;
document.getElementById("second_user_input").value=this.sLineSnapshot;
document.getElementById("preview_btn").click();
},
context: {
fLineSnapshot: fLine,
sLineSnapshot: sLine,
}
},
takeShotOnCallback: true,
captureSelector: '#img_preview_fancybox'
};
然后在此处实例化网络快照:
webshot(exxample.com/testy.html', '../screenshot/' + pID +'.png', options, function(err) {
if (err) return console.log(err);
console.log('OK');
});
我的挑战是testy.html上有一个需要动态设置的变量。我试图通过像这样放置onLoadFinished来传递该变量:
onLoadFinished: {
fn: function() {
var productName = 'Delaware Plate Hat';
在这里我添加了它,以便可以将其传递到幻像回调中,但这不起作用。有什么想法可以传递这个js变量吗?