Javascript 无法使page.injectJs()在PhantomJS中工作
我的代码中包含以下内容:Javascript 无法使page.injectJs()在PhantomJS中工作,javascript,node.js,phantomjs,headless-browser,Javascript,Node.js,Phantomjs,Headless Browser,我的代码中包含以下内容: phantom.createPage(function(page){ page.onCallback = function(data) { console.log("ph callback: ", data); }; page.open(req.query.testUrl, function(status){ if(status !== 'success'){ page.close();
phantom.createPage(function(page){
page.onCallback = function(data) {
console.log("ph callback: ", data);
};
page.open(req.query.testUrl, function(status){
if(status !== 'success'){
page.close();
res.status(500)
.send('Page "' + testUrl + '" could not be loaded.')
.end();
return;
}
var result = page.injectJs('lib/my-test-script.js');
console.log('injectJS: ', result);
page.evaluate(function(){
window.callPhantom(window.mocha.constructor.name);
}, function(){
console.log('finished');
page.close();
res.json({status: status});
res.end();
});
});
});
和console.log('injectJS:',result)
正在输出“injectJS:undefined”,而不是像文档中所说的那样显式地false
:
此外,我已经使用fs.readDir()
验证了my-test-script.js是否存在,但我的代码似乎根本没有被注入,更不用说,我从未从page.onCallback()
获得控制台输出
我现在完全迷路了。我显然做错了什么,但我不知道会是什么。任何帮助都将不胜感激
关联。您正在使用node.js和PhantomJS之间的桥梁(可能),因此PhantomJS文档不会直接应用 所有桥接函数(基本上都是PhantomJS函数)如果还没有进行回调,则会进行额外回调。这在桥接文档中进行了描述。injectJs也是如此。此外,您注册事件的方式也不同:
page.set("onCallback", function(data) {
console.log("ph callback: ", data);
});
...
page.injectJs('lib/my-test-script.js', function(){
page.evaluate(function(){
window.callPhantom(window.mocha.constructor.name);
}, function(){
console.log('finished');
page.close();
res.json({status: status});
res.end();
});
});