在PhantomJS中获得page.injectJs()工作时遇到麻烦
Having trouble getting page.injectJs() to work in PhantomJS
我的代码中有以下内容:
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
的文档说这里:
此外,我已经验证了我的-test-script.js在那里使用fs.readDir()
,但似乎我的代码根本没有被注入,更不用说,我从来没有得到page.onCallback()
的控制台输出。
相关GitHub问题
你正在使用node.js和PhantomJS(可能是PhantomJS -node)之间的桥接,所以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();
});
});
相关文章:
- Javascript:selenium Web驱动程序isDisplayed()不工作
- 将PHP变量传递给jQuery时遇到问题
- jQuery UI自动完成突然停止工作
- AngularJS UI路由器不能像ng路由器那样工作
- HTML5音频加载和播放获胜'我不能在iPad上工作
- JavaScript打印功能使日历停止工作
- 我的jQuery插件参数没有正确启动,遇到了问题
- Javascript.getHours()工作不正常
- 我正试图获得一个带有复选框的多选下拉列表,在填充项目和获得所有选中的工作时遇到了一些问题
- 使 JavaScript 函数工作时遇到麻烦
- 在使 dojo 1.7.2 工作时遇到问题
- 让jQuery在Wordpress中工作时遇到麻烦
- JavaScript 或 CSS - 几乎可以工作,遇到一些障碍
- 后缀增量在JavaScript中遇到加法(+)运算符时是如何工作的
- 在字符串中遇到换行符时,Javascript无法在Visual Force页面上工作
- 在使表单javascript在foundation中工作时遇到问题
- 在让jquery进入工作的最后倒计时时遇到问题
- 让getJSON与codeigniter一起工作时遇到麻烦
- I'我在尝试将一个变量传递到一个已经工作的复杂正则表达式时遇到了问题
- 在PhantomJS中获得page.injectJs()工作时遇到麻烦